JavaScript: implementare la validazione del numero di una carta di credito

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

Torna su