Skip to content

Instantly share code, notes, and snippets.

@kaerer
Created November 15, 2017 09:54
Show Gist options
  • Save kaerer/e42a4bf479a0e432c0b1b3bb7c1b98f5 to your computer and use it in GitHub Desktop.
Save kaerer/e42a4bf479a0e432c0b1b3bb7c1b98f5 to your computer and use it in GitHub Desktop.
JsCreditCardChecker
#Luhn algorithm
function a(inputNum) {
var digit, digits, flag, sum, _i, _len;
flag = true;
sum = 0;
digits = (inputNum + '').split('').reverse();
for (_i = 0, _len = digits.length; _i < _len; _i++) {
digit = digits[_i];
digit = parseInt(digit, 10);
if ((flag = !flag)) {
digit *= 2;
}
if (digit > 9) {
digit -= 9;
}
sum += digit;
}
return sum % 10 === 0;
};
function b(value) {
// accept only digits, dashes or spaces
if (/[^0-9- \s]+/.test(value)) return false;
// The Luhn Algorithm. It's so pretty.
var nCheck = 0, nDigit = 0, bEven = false;
value = value.replace(/\D/g, "");
for (var n = value.length - 1; n >= 0; n--) {
var cDigit = value.charAt(n),
nDigit = parseInt(cDigit, 10);
if (bEven) {
if ((nDigit *= 2) > 9) nDigit -= 9;
}
nCheck += nDigit;
bEven = !bEven;
}
return (nCheck % 10) == 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment