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

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

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.

Torna su