浏览代码

#179: Validate Portuguese VAT number

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

+ 24 - 0
dist/js/bootstrapValidator.js

@@ -2558,6 +2558,30 @@
             }
 
             return (sum % 11 == 0);
+        },
+
+        /**
+         * Validate Portuguese VAT number
+         * Examples:
+         * - Valid: PT501964843
+         * - Invalid: PT501964842
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidPTVat: function(value) {
+            value = value.substr(2);
+            var sum    = 0,
+                weight = [9, 8, 7, 6, 5, 4, 3, 2];
+
+            for (var i = 0; i < 8; i++) {
+                sum += parseInt(value.charAt(i)) * weight[i];
+            }
+            sum = 11 - sum % 11;
+            if (sum > 9) {
+                sum = 0;
+            }
+            return (sum == value.substr(8, 1));
         }
     };
 }(window.jQuery));

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


+ 24 - 0
src/js/validator/vat.js

@@ -184,6 +184,30 @@
             }
 
             return (sum % 11 == 0);
+        },
+
+        /**
+         * Validate Portuguese VAT number
+         * Examples:
+         * - Valid: PT501964843
+         * - Invalid: PT501964842
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidPTVat: function(value) {
+            value = value.substr(2);
+            var sum    = 0,
+                weight = [9, 8, 7, 6, 5, 4, 3, 2];
+
+            for (var i = 0; i < 8; i++) {
+                sum += parseInt(value.charAt(i)) * weight[i];
+            }
+            sum = 11 - sum % 11;
+            if (sum > 9) {
+                sum = 0;
+            }
+            return (sum == value.substr(8, 1));
         }
     };
 }(window.jQuery));