ソースを参照

#267, #532: Add imo validator, thanks to @troymccabe

phuoc 11 年 前
コミット
8a6aca8d6c

+ 1 - 1
dist/css/bootstrapValidator.min.css

@@ -2,7 +2,7 @@
  * BootstrapValidator (http://bootstrapvalidator.com)
  * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
  *
- * @version     v0.5.1-dev, built on 2014-07-19 8:53:51 AM
+ * @version     v0.5.1-dev, built on 2014-07-19 9:08:03 AM
  * @author      https://twitter.com/nghuuphuoc
  * @copyright   (c) 2013 - 2014 Nguyen Huu Phuoc
  * @license     MIT

+ 46 - 1
dist/js/bootstrapValidator.js

@@ -2,7 +2,7 @@
  * BootstrapValidator (http://bootstrapvalidator.com)
  * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
  *
- * @version     v0.5.1-dev, built on 2014-07-19 8:53:51 AM
+ * @version     v0.5.1-dev, built on 2014-07-19 9:08:03 AM
  * @author      https://twitter.com/nghuuphuoc
  * @copyright   (c) 2013 - 2014 Nguyen Huu Phuoc
  * @license     MIT
@@ -3895,6 +3895,51 @@
     };
 }(window.jQuery));
 ;(function($) {
+    $.fn.bootstrapValidator.i18n.imo = $.extend($.fn.bootstrapValidator.i18n.imo || {}, {
+        'default': 'Please enter a valid IMO number'
+    });
+
+    $.fn.bootstrapValidator.validators.imo = {
+        /**
+         * Validate IMO (International Maritime Organization)
+         * Examples:
+         * - Valid: IMO 8814275, IMO 9176187
+         * - Invalid: IMO 8814274
+         *
+         * @see http://en.wikipedia.org/wiki/IMO_Number
+         * @param {BootstrapValidator} validator The validator plugin instance
+         * @param {jQuery} $field Field element
+         * @param {Object} options Can consist of the following keys:
+         * - message: The invalid message
+         * @returns {Boolean}
+         */
+        validate: function(validator, $field, options) {
+            var value = $field.val();
+            if (value === '') {
+                return true;
+            }
+
+            if (!/^IMO \d{7}$/i.test(value)) {
+                return false;
+            }
+            
+            // Grab just the digits
+            var sum    = 0,
+                digits = value.replace(/^.*(\d{7})$/, '$1');
+            
+            // Go over each char, multiplying by the inverse of it's position
+            // IMO 9176187
+            // (9 * 7) + (1 * 6) + (7 * 5) + (6 * 4) + (1 * 3) + (8 * 2) = 147
+            // Take the last digit of that, that's the check digit (7)
+            for (var i = 6; i >= 1; i--) {
+                sum += (digits.slice((6 - i), -i) * (i + 1));
+            }
+
+            return sum % 10 === parseInt(digits.charAt(6), 10);
+        }
+    };
+}(window.jQuery));
+;(function($) {
     $.fn.bootstrapValidator.i18n.integer = $.extend($.fn.bootstrapValidator.i18n.integer || {}, {
         'default': 'Please enter a valid number'
     });

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


+ 3 - 0
dist/js/language/be_NL.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Geef een geldig IMEI nummer'
         },
+        imo: {
+            'default': 'Geef een geldig IMO nummer'
+        },
         integer: {
             'default': 'Geef een geldig nummer'
         },

+ 3 - 0
dist/js/language/bg_BG.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Моля, въведете валиден IMEI номер'
         },
+        imo: {
+            'default': 'Моля, въведете валиден IMO номер'
+        },
         integer: {
             'default': 'Моля, въведете валиден номер'
         },

+ 3 - 0
dist/js/language/cs_CZ.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Prosím zadejte správné IMEI číslo'
         },
+        imo: {
+            'default': 'Prosím zadejte správné IMO číslo'
+        },
         integer: {
             'default': 'Prosím zadejte celé číslo'
         },

+ 3 - 0
dist/js/language/de_DE.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Bitte gültige IMEI Nummer eingeben'
         },
+        imo: {
+            'default': 'Bitte gültige IMO Nummer eingeben'
+        },
         integer: {
             'default': 'Bitte Zahl eingeben'
         },

+ 3 - 0
dist/js/language/en_US.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Please enter a valid IMEI number'
         },
+        imo: {
+            'default': 'Please enter a valid IMO number'
+        },
         integer: {
             'default': 'Please enter a valid number'
         },

+ 3 - 0
dist/js/language/es_CL.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Por favor ingrese un número IMEI válido'
         },
+        imo: {
+            'default': 'Por favor ingrese un número IMO válido'
+        },
         integer: {
             'default': 'Por favor ingrese un número válido'
         },

+ 3 - 0
dist/js/language/fr_FR.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Veuillez fournir un code IMEI valide'
         },
+        imo: {
+            'default': 'Veuillez fournir un code IMO valide'
+        },
         integer: {
             'default': 'Veuillez fournir un nombre valide'
         },

+ 3 - 0
dist/js/language/hu_HU.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Kérlek, hogy érvényes IMEI számot adj meg'
         },
+        imo: {
+            'default': 'Kérlek, hogy érvényes IMO számot adj meg'
+        },
         integer: {
             'default': 'Kérlek, hogy számot adj meg'
         },

+ 3 - 0
dist/js/language/pl_PL.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Wprowadź poprawnu numer IMEI'
         },
+        imo: {
+            'default': 'Wprowadź poprawnu numer IMO'
+        },
         integer: {
             'default': 'Wprowadź poprawną liczbę całkowitą'
         },

+ 3 - 0
dist/js/language/vi_VN.js

@@ -184,6 +184,9 @@
         imei: {
             'default': 'Vui lòng nhập số IMEI hợp lệ'
         },
+        imo: {
+            'default': 'Vui lòng nhập số IMO hợp lệ'
+        },
         integer: {
             'default': 'Vui lòng nhập số hợp lệ'
         },

+ 3 - 0
dist/js/language/zh_CN.js

@@ -184,6 +184,9 @@
         imei: {
             'default': '请输入有效的IMEI'
         },
+        imo: {
+            'default': '请输入有效的IMO'
+        },
         integer: {
             'default': '请输入有效的整数'
         },

+ 3 - 0
dist/js/language/zh_TW.js

@@ -184,6 +184,9 @@
         imei: {
             'default': '請輸入有效的IMEI'
         },
+        imo: {
+            'default': '請輸入有效的IMO'
+        },
         integer: {
             'default': '請輸入有效的整數'
         },