MICHELEPISANI.IT
 

Validazione di un campo email con un'espressione regolare

Validare un indirizzo email in Javascript con una regexp

Validare un indirizzo email in Javascript con una regex
November 23
07:082014

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.


Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

MASSIMO BERNARDI

ho cercato ma non ho trovato niente se non dei sensori di passaggio tipo passaggio sotto entrata di …

Michele Pisani

Ciao Massimo, sia i sensori che un sistema già pronto (in base alle tue esigenze) li puoi …

MASSIMO BERNARDI

CIAO A ME SERVIREBBERO QUATTRO SENSORI COSì PER FARE DEI TEST FISICI DOVE POSSO TROVARE UN …

Michele Pisani

Ciao Domenico, in questi casi controllerei la posta, di solito arrivano degli avvisi via email in …