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

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …