|
|
@@ -832,6 +832,27 @@
|
|
|
check = (((check || 10) * 2) % 11 + parseInt(value.charAt(i), 10)) % 10;
|
|
|
}
|
|
|
return (check == 1);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Implements Mod 37, 36 (ISO 7064) algorithm
|
|
|
+ * Usages:
|
|
|
+ * mod_37_36('A12425GABC1234002M')
|
|
|
+ * mod_37_36('002006673085', '0123456789')
|
|
|
+ *
|
|
|
+ * @param {String} value
|
|
|
+ * @param {String} alphabet
|
|
|
+ * @returns {Boolean}
|
|
|
+ */
|
|
|
+ mod_37_36: function(value, alphabet) {
|
|
|
+ alphabet = alphabet || '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
+ var modulus = alphabet.length,
|
|
|
+ length = value.length,
|
|
|
+ check = Math.floor(modulus / 2);
|
|
|
+ for (var i = 0; i < length; i++) {
|
|
|
+ check = (((check || modulus) * 2) % (modulus + 1) + alphabet.indexOf(value.charAt(i))) % modulus;
|
|
|
+ }
|
|
|
+ return (check == 1);
|
|
|
}
|
|
|
};
|
|
|
}(window.jQuery));
|
|
|
@@ -1510,6 +1531,39 @@
|
|
|
}
|
|
|
}(window.jQuery));
|
|
|
;(function($) {
|
|
|
+ $.fn.bootstrapValidator.validators.grid = {
|
|
|
+ /**
|
|
|
+ * Validate GRId (Global Release Identifier)
|
|
|
+ * Examples:
|
|
|
+ * - Valid: A12425GABC1234002M, A1-2425G-ABC1234002-M, A1 2425G ABC1234002 M, Grid:A1-2425G-ABC1234002-M
|
|
|
+ * - Invalid: A1-2425G-ABC1234002-Q
|
|
|
+ *
|
|
|
+ * @see http://en.wikipedia.org/wiki/Global_Release_Identifier
|
|
|
+ * @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;
|
|
|
+ }
|
|
|
+
|
|
|
+ value = value.toUpperCase();
|
|
|
+ if (!/^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(value)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ value = value.replace(/\s/g, '').replace(/-/g, '');
|
|
|
+ if ('GRID:' == value.substr(0, 5)) {
|
|
|
+ value = value.substr(5);
|
|
|
+ }
|
|
|
+ return $.fn.bootstrapValidator.helpers.mod_37_36(value);
|
|
|
+ }
|
|
|
+ };
|
|
|
+}(window.jQuery));
|
|
|
+;(function($) {
|
|
|
$.fn.bootstrapValidator.validators.hex = {
|
|
|
/**
|
|
|
* Return true if and only if the input value is a valid hexadecimal number
|