Sha256: a98d62ce3ce53beae97d788888e7696d069a235666bf35c0a31f7cb03a6ae442
Contents?: true
Size: 1.99 KB
Versions: 4
Compression:
Stored size: 1.99 KB
Contents
(function($) { $.fn.bootstrapValidator.i18n.cusip = $.extend($.fn.bootstrapValidator.i18n.cusip || {}, { 'default': 'Please enter a valid CUSIP number' }); $.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], 10); 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));
Version data entries
4 entries across 4 versions & 2 rubygems