Molto spesso capita di avere la necessità di verificare la validità di un indirizzo email prima di procedere con un passaggio successivo relativo al suo impiego, sia esso il salvataggio in un database per la registrazione ad una newsletter che la registrazione ad un servizio, ecc...
Uno dei migliori modi per effettuare tale controllo è farlo lato client incaricando il browser dell'utente ed è possibile attuarlo mettendo a punto una funzione in Javascript. L'esempio in questione prevede l'uso di un'espressione regolare, con tutti i vantaggi che comporta a livello di codice, e ci svincola dall'utilizzo di librerie esterne, come jQuery, consentendoci di verificare l'intergrità del formato dell'indirizzo email inserito in modo rapido, affidabile e senza sovraccaricare il server con richieste inutili.
La regular expression utilizzata è la seguente:
function validaEmail(email) {
var regexp = /^(([^<>()[].,;:s@"]+(.[^<>()[].,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
return regexp.test(email);
}
Di seguito il codice di un esempio completo e funzionante in Javascript puro per il controllo della validità del formato di un indirizzo email:
<p>Inserisci un indirizzo email e verificane il formato:</p>
<input id='email' name='email' value =''>
<input type='button' id='verifica' value='Verifica la validità' onclick='checkEmail();' />
<br />
<p id='risultato'></p>
function validaEmail(email) {
var regexp = /^(([^<>()[].,;:s@"]+(.[^<>()[].,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
return regexp.test(email);
}
function checkEmail(){
risultato = document.getElementById("risultato");
email = document.getElementById("email").value;
risultato.innerHTML = "";
if (validaEmail(email)) {
risultato.innerHTML = email + " indirizzo valido";
risultato.style.color = 'green';
} else {
risultato.innerHTML = email + " indirizzo non valido";
risultato.style.color = 'red';
}
}
Potete valutarne il funzionamento direttamente su questo JSFiddle dal tab "Result":
Faccio presente che, ai fini della sicurezza e dell'integrità del dato, è sempre bene effettuare un controllo anche lato server prima di scrivere valori nel database.
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
Scrivi un Commento