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

Michele Pisani

Direi la forma "Allow: /". La riga Disallow: (senza alcuna path) indica che non ci sono …

maurizio

Grazie per la spiegazione chiare e le utili informazioni. Mi rimane da capire se è meglio …

olgica

NON MI FUNZIONA,SALUTI.CIAO