JavaScript: come validare il numero di una carta di credito usando l'algoritmo di Luhn

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);
}