Come posso validare il numero di una carta di credito con JavaScript?

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

Torna su