Sha256: 2b509bfef323d1c846e870c5c8b9df498b42a90a7466a14bf4946864781815b4
Contents?: true
Size: 1.8 KB
Versions: 4
Compression:
Stored size: 1.8 KB
Contents
(function($) { $.fn.bootstrapValidator.i18n.vin = $.extend($.fn.bootstrapValidator.i18n.vin || {}, { 'default': 'Please enter a valid VIN number' }); $.fn.bootstrapValidator.validators.vin = { /** * Validate an US VIN (Vehicle Identification Number) * * @param {BootstrapValidator} validator The validator plugin instance * @param {jQuery} $field Field element * @param {Object} options Consist of key: * - message: The invalid message * @returns {Boolean} */ validate: function(validator, $field, options) { var value = $field.val(); if (value === '') { return true; } // Don't accept I, O, Q characters if (!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(value)) { return false; } value = value.toUpperCase(); var chars = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, J: 1, K: 2, L: 3, M: 4, N: 5, P: 7, R: 9, S: 2, T: 3, U: 4, V: 5, W: 6, X: 7, Y: 8, Z: 9, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '0': 0 }, weights = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2], sum = 0, length = value.length; for (var i = 0; i < length; i++) { sum += chars[value.charAt(i) + ''] * weights[i]; } var reminder = sum % 11; if (reminder === 10) { reminder = 'X'; } return (reminder + '') === value.charAt(8); } }; }(window.jQuery));
Version data entries
4 entries across 4 versions & 2 rubygems