La validazione preliminare delle carte di credito in JavaScript richiede l'implementazione dell'algoritmo di Luhn.
La soluzione è la seguente:
function isValidCard( identifier ) {
var sum = 0,
alt = false,
i = identifier.length-1,
num;
if ( identifier.length < 13 || identifier.length > 19 ){
return false;
}
while ( i >= 0 ) {
num = parseInt( identifier.charAt( i ), 10 );
if ( isNaN( num ) ) {
return false;
}
if ( alt ) {
num *= 2;
if ( num > 9 ) {
num = ( num % 10 ) + 1;
}
}
alt = !alt;
sum += num;
i--;
}
return ( sum % 10 == 0 );
}