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
Novembre 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
Condividi

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

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

Michele

Ciao domenico,
hai provato con

Michele

Ciao Luca,
hai provato a contattare l'assistenza di Facebook? Attualmente la via migliore …

domenico

ciao, puoi aiutarmi?

ho creato un form che tramite una chiamata mi restituisce una …

Luca

Peccato che fb abbia modificato tutto ed ora sembra non esserci alcun modo per accedere alle …