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.

JavaScript di Gabriele Romanato

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

Commenti