Skip to content

Instantly share code, notes, and snippets.

@mratzloff
Forked from petercowan/luhnCheck.js
Created February 2, 2012 18:10
Show Gist options
  • Save mratzloff/1724921 to your computer and use it in GitHub Desktop.
Save mratzloff/1724921 to your computer and use it in GitHub Desktop.
Luhn check for jQuery-Validation-Engine
var validateCreditCard = function(field, rules, i, options) {
var valid = false,
cardNumber = field.val().replace(/ +/g, "").replace(/-+/g, "");
var numDigits = cardNumber.length;
if (numDigits >= 14 && numDigits <= 16 && parseInt(cardNumber) > 0) {
var pos = 1;
var luhn = "";
for (var i = numDigits - 1; i >= 0; i--) {
var digit = parseInt(cardNumber.charAt(i));
luhn += (pos++ % 2 == 0) ? digit * 2: digit;
}
var sum = 0;
for (var i = 0; i < luhn.length; i++) {
sum += parseInt(luhn.charAt(i));
}
valid = sum % 10 == 0;
}
if (!valid) {
return options.allrules.creditCard.alertText;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment