JavaScript: validare la data di scadenza di una carta di credito

Short link

In JavaScript possiamo validare la data di scadenza di una carta di credito.

La soluzione รจ la seguente.


'use strict';

const isValidCardExpireDate = value => {

    // Il valore del campo del form è sintatticamente valido? (mm/aa)


    if(!/^\d{2}\/\d{2}$/.test(value)) {
        return false;
    }
    let parts = value.split('/');
    let cardMonth = (parts[0][0] === '0') ? parseInt(parts[0][1], 10) : parseInt(parts[0], 10);
    let cardYear = parseInt('20' + parts[1], 10);
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;

    // Il mese è valido?

    if(cardMonth > 12 || cardMonth < 1) {
        return false;
    }

    // L'anno è superiore o uguale a quello corrente?

    if(cardYear < year) {
        return false;
    }

    /* Se l'anno coincide con quello corrente ma il mese è superiore,
     * la carta è scaduta.
     */

    if(cardMonth > month && cardYear === year ) {
        return false;
    }

    return true;
};

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.