Skip to content

Instantly share code, notes, and snippets.

@aniketpant
Created November 11, 2013 04:26
Show Gist options
  • Save aniketpant/7407860 to your computer and use it in GitHub Desktop.
Save aniketpant/7407860 to your computer and use it in GitHub Desktop.
Bank Card Validation Tests
function luhn_checksum( cardNumber ) {
var checkDigit = cardNumber % 10;
var checksumNumber = parseInt( cardNumber / 10 ).toString();
var digits = checksumNumber.length;
var sum = 0,
digit,
tempNumber;
for ( var i = 0; i < digits; i++ ) {
var digit = parseFloat( cardNumber[i] );
if ( i % 2 === 1 ) {
tempNumber = digit * 2;
tempNumber += '';
for ( var j = 0; j < tempNumber.length; j++ ) {
sum += parseFloat( tempNumber[j] );
}
}
else {
sum += digit;
}
}
var calculatedCheckDigit = parseInt( ( sum * 9 ) % 10 );
return ( calculatedCheckDigit - checkDigit );
}
function is_luhn_valid( cardNumber ) {
return ( luhn_checksum( cardNumber ) == 0 );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment