浏览代码

#179: Validate Estonian VAT number

phuoc 11 年之前
父节点
当前提交
bea1aefdec
共有 3 个文件被更改,包括 65 次插入13 次删除
  1. 32 6
      dist/js/bootstrapValidator.js
  2. 1 1
      dist/js/bootstrapValidator.min.js
  3. 32 6
      src/js/validator/vat.js

+ 32 - 6
dist/js/bootstrapValidator.js

@@ -2442,7 +2442,9 @@
 
         /**
          * Validate Belgium VAT number
-         * Example: BE0428759497
+         * Example:
+         * - Valid: BE0428759497
+         * - Invalid: BE431150351
          *
          * @param {String} value VAT number
          * @return {Boolean}
@@ -2457,25 +2459,49 @@
                 return false;
             }
 
-            return (97 - value.substr(0, 8) % 97 == value.substr(8, 2));
+            var sum = parseInt(value.substr(0, 8), 10) + parseInt(value.substr(8, 2), 10);
+            return (sum % 97 == 0);
         },
 
         /**
          * Validate Danish VAT number
-         * Example: DK13585628
+         * Example:
+         * - Valid: DK13585628
+         * - Invalid: DK13585627
          *
          * @param {String} value VAT number
          * @return {Boolean}
          */
         _isValidDKVat: function(value) {
             value = value.substr(2);
-            var sum   = 0,
-                weigh = [2, 7, 6, 5, 4, 3, 2, 1];
+            var sum    = 0,
+                weight = [2, 7, 6, 5, 4, 3, 2, 1];
             for (var i = 0; i < 8; i++) {
-                sum += parseInt(value.charAt(i), 10) * weigh[i];
+                sum += parseInt(value.charAt(i), 10) * weight[i];
             }
 
             return (sum % 11 == 0);
+        },
+
+        /**
+         * Validate Estonian VAT number
+         * Examples:
+         * - Valid: EE100931558, EE100594102
+         * - Invalid: EE100594103
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidEEVat: function(value) {
+            value = value.substr(2);
+            var sum    = 0,
+                weight = [3, 7, 1, 3, 7, 1, 3, 7, 1];
+
+            for (var i = 0; i < 9; i++) {
+                sum += parseInt(value.charAt(i)) * weight[i];
+            }
+
+            return (sum % 10 == 0);
         }
     };
 }(window.jQuery));

文件差异内容过多而无法显示
+ 1 - 1
dist/js/bootstrapValidator.min.js


+ 32 - 6
src/js/validator/vat.js

@@ -68,7 +68,9 @@
 
         /**
          * Validate Belgium VAT number
-         * Example: BE0428759497
+         * Example:
+         * - Valid: BE0428759497
+         * - Invalid: BE431150351
          *
          * @param {String} value VAT number
          * @return {Boolean}
@@ -83,25 +85,49 @@
                 return false;
             }
 
-            return (97 - value.substr(0, 8) % 97 == value.substr(8, 2));
+            var sum = parseInt(value.substr(0, 8), 10) + parseInt(value.substr(8, 2), 10);
+            return (sum % 97 == 0);
         },
 
         /**
          * Validate Danish VAT number
-         * Example: DK13585628
+         * Example:
+         * - Valid: DK13585628
+         * - Invalid: DK13585627
          *
          * @param {String} value VAT number
          * @return {Boolean}
          */
         _isValidDKVat: function(value) {
             value = value.substr(2);
-            var sum   = 0,
-                weigh = [2, 7, 6, 5, 4, 3, 2, 1];
+            var sum    = 0,
+                weight = [2, 7, 6, 5, 4, 3, 2, 1];
             for (var i = 0; i < 8; i++) {
-                sum += parseInt(value.charAt(i), 10) * weigh[i];
+                sum += parseInt(value.charAt(i), 10) * weight[i];
             }
 
             return (sum % 11 == 0);
+        },
+
+        /**
+         * Validate Estonian VAT number
+         * Examples:
+         * - Valid: EE100931558, EE100594102
+         * - Invalid: EE100594103
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidEEVat: function(value) {
+            value = value.substr(2);
+            var sum    = 0,
+                weight = [3, 7, 1, 3, 7, 1, 3, 7, 1];
+
+            for (var i = 0; i < 9; i++) {
+                sum += parseInt(value.charAt(i)) * weight[i];
+            }
+
+            return (sum % 10 == 0);
         }
     };
 }(window.jQuery));