|
|
@@ -1184,6 +1184,57 @@
|
|
|
};
|
|
|
}(window.jQuery));
|
|
|
;(function($) {
|
|
|
+ $.fn.bootstrapValidator.validators.cusip = {
|
|
|
+ /**
|
|
|
+ * Validate a CUSIP
|
|
|
+ * Examples:
|
|
|
+ * - Valid: 037833100, 931142103, 14149YAR8, 126650BG6
|
|
|
+ * - Invalid: 31430F200, 022615AC2
|
|
|
+ *
|
|
|
+ * @see http://en.wikipedia.org/wiki/CUSIP
|
|
|
+ * @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 (!/^[0-9A-Z]{9}$/.test(value)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ var converted = $.map(value.split(''), function(item) {
|
|
|
+ var code = item.charCodeAt(0);
|
|
|
+ return (code >= 'A'.charCodeAt(0) && code <= 'Z'.charCodeAt(0))
|
|
|
+ // Replace A, B, C, ..., Z with 10, 11, ..., 35
|
|
|
+ ? (code - 'A'.charCodeAt(0) + 10)
|
|
|
+ : item;
|
|
|
+ }),
|
|
|
+ length = converted.length,
|
|
|
+ sum = 0;
|
|
|
+ for (var i = 0; i < length - 1; i++) {
|
|
|
+ var num = parseInt(converted[i]);
|
|
|
+ if (i % 2 != 0) {
|
|
|
+ num *= 2;
|
|
|
+ }
|
|
|
+ if (num > 9) {
|
|
|
+ num -= 9;
|
|
|
+ }
|
|
|
+ sum += num;
|
|
|
+ }
|
|
|
+
|
|
|
+ sum = (10 - (sum % 10)) % 10;
|
|
|
+ return sum == converted[length - 1];
|
|
|
+ }
|
|
|
+ };
|
|
|
+}(window.jQuery));
|
|
|
+;(function($) {
|
|
|
$.fn.bootstrapValidator.validators.cvv = {
|
|
|
html5Attributes: {
|
|
|
message: 'message',
|