浏览代码

Merge pull request #637 from evilchili/upstream

add Icelandic VAT/VSK validator
Phuoc Nguyen 11 年之前
父节点
当前提交
17a831939f
共有 2 个文件被更改,包括 37 次插入1 次删除
  1. 17 1
      src/js/validator/vat.js
  2. 20 0
      test/spec/validator/vat.js

+ 17 - 1
src/js/validator/vat.js

@@ -22,6 +22,7 @@
             HU: 'Hungarian',
             HR: 'Croatian',
             IE: 'Irish',
+            IS: 'Iceland',
             IT: 'Italian',
             LT: 'Lithuanian',
             LU: 'Luxembourg',
@@ -50,7 +51,7 @@
         // Supported country codes
         COUNTRY_CODES: [
             'AT', 'BE', 'BG', 'CH', 'CY', 'CZ', 'DE', 'DK', 'EE', 'EL', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU',
-            'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RU', 'RS', 'SE', 'SK', 'SI', 'ZA'
+            'IE', 'IS', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RU', 'RS', 'SE', 'SK', 'SI', 'ZA'
         ],
 
         /**
@@ -1230,5 +1231,20 @@
          _za: function(value) {
             return /^4\d{9}$/.test(value);
         }
+
+        /**
+         * Validate Icelandic VAT (VSK) number
+         * Examples:
+         * - Valid: 12345, 123456
+         * - Invalid: 1234567
+         *
+         * @params {String} value VAT number
+         * @returns {Boolean}
+         */
+         _is: function(value) {
+            return /^\d{5,6}$/.test(value);
+        }
+
+
     };
 }(window.jQuery));

+ 20 - 0
test/spec/validator/vat.js

@@ -661,4 +661,24 @@ describe('vat', function() {
             expect(this.bv.isValid()).toEqual(false);
         }
     });
+
+    is('Icelandic VAT (VSK) number', function () {
+        // Valid samples
+        var validSamples = ['11111', '111111']
+        for (var i in validSamples) {
+            this.bv.resetForm();
+            this.$vat.val(validSamples[i]);
+            this.bv.validate();
+            expect(this.bv.isValid()).toBeTruthy();
+        }
+
+        // Invalid samples
+        var invalidSamples = ['1234567', '123456ABC']
+        for (i in invalidSamples) {
+            this.bv.resetForm();
+            this.$vat.val(invalidSamples[i]);
+            this.bv.validate();
+            expect(this.bv.isValid()).toEqual(false);
+        }
+    });
 });