La validazione preliminare delle carte di credito in JavaScript richiede l'implementazione dell'algoritmo di Luhn.
La soluzione รจ la seguente:
'use strict';
const isValidCreditCard = str => {
let sum = 0,
alt = false,
i = str.length-1,
num;
if ( str.length < 13 || str.length > 19 ){
return false;
}
while ( i >= 0 ) {
num = parseInt( str.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 );
}