| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- (function($) {
- $.fn.bootstrapValidator.validators.creditCard = {
- /**
- * Return true if the input value is valid credit card number
- * Based on https://gist.github.com/DiegoSalazar/4075533
- *
- * @param {BootstrapValidator} validator The validator plugin instance
- * @param {jQuery} $field Field element
- * @param {Object} options Can consist of the following key:
- * - message: The invalid message
- * @returns {boolean}
- */
- validate: function(validator, $field, options) {
- var value = $field.val();
- // Accept only digits, dashes or spaces
- if (/[^0-9-\s]+/.test(value)) {
- return false;
- }
- // The Luhn Algorithm
- // http://en.wikipedia.org/wiki/Luhn
- value = value.replace(/\D/g, '');
- var check = 0, digit = 0, even = false, length = value.length;
- for (var n = length - 1; n >= 0; n--) {
- digit = parseInt(value.charAt(n), 10);
- if (even) {
- if ((digit *= 2) > 9) {
- digit -= 9;
- }
- }
- check += digit;
- even = !even;
- }
- return (check % 10) == 0;
- }
- };
- }(window.jQuery));
|