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