devdev / in the loop

Controllare la validità di un indirizzo email in Javascript

Per controllare la validità formale – ovvero la sintassi – di un indirizzo in email in Javascript, la soluzione più rapida ed elegante è quella di confrontare l’indirizzo email da controllare rispetto ad una espressione regolare.

Prima di procedere, però, teniamo sempre a mente che Javascript potrebbe essere disabilitato dall’utente, quindi vi consiglio di controllare anche lato server la validità dell’indirizzo email immesso. Per farlo, possiamo tranquillamente riutilizzare l’espressione regolare che abbiamo usato in questo codice Javascript. Secondo avvertimento, questa funzione gestirà soltanto la forma dell’indirizzo, non la reale esistenza della casella in questione.

Ecco l’espressione regolare da utilizzare, che tiene conto anche dei caratteri unicode:

var regex_email_valida = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;

Costruiamoci attorno una funzione da utilizzare e vediamola in azione:

function emailIsValid(email) {
  var regex_email_valida = /^(([^<>()[\]\\.,;:\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 regex_email_valida.test(email);
}

Come possiamo vedere, abbiamo utilizzato il metodo test(), appartenente a qualsiasi oggetto di tipo RegExpObject, creato automaticamente non appena abbiamo inizializzato la variabile regex_email_valida.

La funzione, naturalmente, è di tipo bool , ci restituirà true o false .

Proviamo a fare un esempio completo con l’invio di un form:

<form id="form_test">
    <label>Indirizzo email</label>
    <input type="email" id="email">
    <button type="submit" id="validate">Invio</button>
</form>
var form = document.querySelector('#form_test');

form.addEventListener('submit', function(e) {
    e.preventDefault();
   
    if (emailIsValid("luca.murante@gmail.com")) {
        alert("Email valida");
    } else {
        alert("Email non valida");
    }
}, false);

form.submit();

 

Questo articolo ti è stato utile?
Javascript – LETTURA 4 MINUTI Alternativa a jQuery .eq() in Javascript
Una delle funzioni di traversing più utili di jQuery è sicuramente .eq() . Ci permette di accedere ad un elemento di…
Javascript – LETTURA 4 MINUTI Come conoscere la posizione di un elemento con jQuery index o in vanilla Javascript
Il motto di jQuery è “Write less, do more”, anche se gli ultimi anni stiamo vedendo uno shifting di molte…
Javascript – LETTURA 6 MINUTI Utilizzare i parametri GET in Javascript con URLSearchParams
I parametri URL, che tutti conosciamo come parametri GET o query) vengono utilizzati per passare informazioni alla pagina che stiamo…
Javascript – LETTURA 4 MINUTI Aggiungere una regola CSS con Javascript
Aggiungere una regola CSS in modo dinamico con Javascript può esserci utile in vari casi: uno riguarda sicuramente le performance,…
Roba figa da
if (weekend) {
    relax();
}
la nostra newsletter, ogni tanto.