JavaScript: verificare la correttezza dell'età di un utente

Short link

Uno dei compiti richiesti dall'uso di JavaScript nei nostri siti è la validazione lato client dei form, validazione che, ricordiamolo, non dovrà mai e poi mai sostituire quella lato server. Vediamo come validare l'età inserita da un utente.

Possiamo utilizzare il seguente codice all'atto dell'invio del form:


'use strict';

const isValidAge = dateStr => {
    if(!/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) {
        return false;
    }
    let parts = dateStr.split('-');
    let month = (parts[1][0] === '0') ? parseInt(parts[1][1], 10) : parseInt(parts[1], 10);
	let year = parseInt(parts[0], 10);
    let day = (parts[2][0] === '0') ? parseInt(parts[2][1], 10) : parseInt(parts[2], 10);
	let requiredAge = 18;
	let date = new Date();

    if(year > date.getFullYear()) {
        return false;
    }
    if(month < 1 || month > 12) {
        return false;
    }

    if(day < 1 || day > 31) {
        return false;
    }

    date.setFullYear(year, month - 1, day);
    let currDate = new Date();
	currDate.setFullYear(currDate.getFullYear() - requiredAge);
	if ((currDate - date) < 0) {
		return false;
	}


};

La tecnica è semplice: utilizziamo la data corrente e dopo averla validata e averne estratto l'anno lo sottraiamo dall'età minima richiesta (in questo caso 18). Quindi verifichiamo che la data inserita dall'utente sia nel range stabilito.

L'autore

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