ソースを参照

#179: Validate German VAT number

phuoc 11 年 前
コミット
c7f9471deb
3 ファイル変更51 行追加1 行削除
  1. 25 0
      dist/js/bootstrapValidator.js
  2. 1 1
      dist/js/bootstrapValidator.min.js
  3. 25 0
      src/js/validator/vat.js

+ 25 - 0
dist/js/bootstrapValidator.js

@@ -2464,6 +2464,31 @@
         },
 
         /**
+         * Validate German VAT number
+         * Examples:
+         * - Valid: DE136695976
+         * - Invalid: DE136695978
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidDEVat: function(value) {
+            value = value.substr(2);
+            var product = 10,
+                sum     = 0;
+            for (var i = 0; i < 8; i++) {
+                sum = (parseInt(value.charAt(i), 10) + product) % 10;
+                if (sum == 0) {
+                    sum = 10;
+                }
+                product = (sum * 2) % 11;
+            }
+
+            var checkDigit = (11 - product == 10) ? 0 : (11 - product);
+            return (checkDigit == value.substr(8, 1));
+        },
+
+        /**
          * Validate Danish VAT number
          * Example:
          * - Valid: DK13585628

ファイルの差分が大きいため隠しています
+ 1 - 1
dist/js/bootstrapValidator.min.js


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

@@ -90,6 +90,31 @@
         },
 
         /**
+         * Validate German VAT number
+         * Examples:
+         * - Valid: DE136695976
+         * - Invalid: DE136695978
+         *
+         * @param {String} value VAT number
+         * @return {Boolean}
+         */
+        _isValidDEVat: function(value) {
+            value = value.substr(2);
+            var product = 10,
+                sum     = 0;
+            for (var i = 0; i < 8; i++) {
+                sum = (parseInt(value.charAt(i), 10) + product) % 10;
+                if (sum == 0) {
+                    sum = 10;
+                }
+                product = (sum * 2) % 11;
+            }
+
+            var checkDigit = (11 - product == 10) ? 0 : (11 - product);
+            return (checkDigit == value.substr(8, 1));
+        },
+
+        /**
          * Validate Danish VAT number
          * Example:
          * - Valid: DK13585628