Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Luhn algorithm in Javascript. Check valid credit card numbers

View validate_credit_card.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// takes the form field value and returns true on valid number
function valid_credit_card(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;
}

Nicely worked.

Tested with all the test card numbers from http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm

Worked with all. Good job!

anyone have the generate algorithm? I need to generate ID numbers with a check digit

@Maxhodges - To generate a check digit, set bEven to true initially, and return (1000 - nCheck) % 10.

Execution time is very high: 35128.324ms

I've tried another Algorithm and it reported 0.059ms https://gist.github.com/ShirtlessKirk/2134376

Quite helpful !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.