Java email validation using regex

Email validation using regular expressions is common task which may be required in any application which seek email address as required information in registration step. Ci possono essere altri casi d’uso, ma questo non è il punto della discussione qui.

Partiamo direttamente dalla discussione principale, ovvero validare le email in Java usando le espressioni regolari.

Più semplice regex per validare le email

Regex : ^(.+)@(.+)$

Questa è la più semplice e si preoccupa solo del simbolo ‘@’. Prima e dopo il simbolo ‘@’, ci può essere qualsiasi numero di caratteri. Vediamo un rapido esempio per vedere cosa intendo.

Programma Output.

Questo schema è disponibile nella classe EmailValidator di Common lang. Quindi se è adatto alle tue esigenze, puoi usare direttamente questa classe.

Aggiungimento di restrizioni sulla parte del nome utente

Regex : ^+@(.+)$

In questa regex, abbiamo aggiunto alcune restrizioni sulla parte username dell’indirizzo email. Le restrizioni nella regex di cui sopra sono:

Testiamo alcuni indirizzi email contro la regex di cui sopra.

Programma Output.

Si prega di notare che restrizioni simili si possono applicare anche alla parte del nome di dominio. Quindi l’espressione regolare diventerà come questa.

^+@+$

Convalida email Java permessa da RFC 5322

Regata : ^+@+$

Questo esempio di regex usa tutti i caratteri permessi da RFC 5322, che regola il formato dei messaggi di posta elettronica. Tra i caratteri permessi ce ne sono alcuni che presentano un rischio per la sicurezza se passati direttamente dall’input dell’utente a un’istruzione SQL, come l’apice singolo (‘) e il carattere pipe (|).

Dovresti assicurarti di fare l’escape dei caratteri sensibili quando inserisci l’indirizzo email in una stringa passata ad un altro programma, al fine di prevenire falle di sicurezza come gli attacchi SQL injection.

Programma Output.

Regex per limitare punti iniziali, finali o consecutivi nelle email

Regex : ^+(?:\\\.+)*@+(?:\\.+)*$

Sia la parte locale che il nome di dominio possono contenere uno o più punti, ma due punti non possono apparire uno accanto all’altro. Inoltre, il primo e l’ultimo carattere nella parte locale e nel nome di dominio non devono essere punti:

Programma Output.

Regex per limitare il numero di caratteri nel dominio di primo livello

Ora modifichiamo la regex in modo che il nome di dominio debba includere almeno un punto, e che la parte del nome di dominio dopo l’ultimo punto possa essere composta solo da lettere.

Diciamo che i nomi di dominio sono come secondlevel.com o thirdlevel.secondlevel.com. Il dominio di primo livello (.com in questi esempi) deve essere composto solo da due a sei lettere.

Regex : ^+(?:\\.+)*@(?:+\.)+{2,6}$

Programma in uscita.

Questa ultima regex è la mia raccomandazione per una semplice validazione di email in java. Si prega di notare che la validazione delle email in java senza espressione regolare può essere possibile, ma non è raccomandata. Ovunque abbiate bisogno di trattare con modelli, le espressioni regolari sono vostre amiche.

Sentitevi liberi di usare questa regex così come di modificarla secondo le esigenze aggiuntive della vostra applicazione.

Buon apprendimento!!!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.