Validarea e-mailului Java folosind regex

Validarea e-mailului folosind expresii regulate este o sarcină comună care poate fi necesară în orice aplicație care caută adresa de e-mail ca informație necesară în etapa de înregistrare. Pot exista mai multe cazuri de utilizare, dar nu acesta este punctul de discuție aici.

Să trecem direct la discuția principală, adică la validarea e-mailului în Java folosind expresii regulate.

Cel mai simplu regex pentru validarea e-mailului

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

Aceasta este cea mai simplă și îi pasă doar de simbolul ‘@’. Înainte și după simbolul ‘@’, pot exista orice număr de caractere. Să vedem un exemplu rapid pentru a vedea la ce mă refer.

Program Output.

Acest model este disponibil în clasa EmailValidator din Common lang. Așadar, dacă se potrivește nevoilor dumneavoastră, puteți folosi direct această clasă.

Adaugarea de restricții pe partea de nume de utilizator

Regex : ^+@(.+)$

În acest regex, am adăugat câteva restricții pe partea de nume de utilizator a adresei de e-mail. Restricțiile din regexul de mai sus sunt:

Să testăm câteva adrese de e-mail în funcție de regexul de mai sus.

Program Output.

Rețineți că o restricție similară se poate aplica și la partea de nume de domeniu. Apoi, expresia regulată va deveni astfel.

^+@+$

Validarea email-ului Java permisă de RFC 5322

Regex : ^+@+$

Acest exemplu de regex utilizează toate caracterele permise de RFC 5322, care guvernează formatul mesajelor de e-mail. Printre caracterele permise se numără unele care prezintă un risc de securitate dacă sunt trecute direct de la intrarea utilizatorului la o instrucțiune SQL, cum ar fi ghilimelele simple (‘) și caracterul pipe (|).

Ar trebui să vă asigurați că scăpați caracterele sensibile atunci când inserați adresa de e-mail într-un șir transmis unui alt program, pentru a preveni găurile de securitate, cum ar fi atacurile de injecție SQL.

Program Output.

Regex pentru a restricționa punctele de început, de sfârșit sau consecutive în e-mailuri

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

Atât partea locală cât și numele de domeniu pot conține unul sau mai multe puncte, dar nu pot apărea două puncte chiar unul lângă celălalt. În plus, primul și ultimul caracter din partea locală și din numele de domeniu nu trebuie să fie puncte:

Program Output.

Regex pentru a restricționa nr. de caractere în domeniul de nivel superior

Acum să modificăm regex-ul astfel încât numele de domeniu să includă cel puțin un punct, iar partea din numele de domeniu de după ultimul punct să poată consta numai din litere.

Să spunem că numele de domeniu sunt de tipul secondlevel.com sau thirdlevel.secondlevel.com. Domeniul de nivel superior (.com în aceste exemple) trebuie să fie format doar din două până la șase litere.

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

Program Output.

Acest ultim regex este recomandarea mea pentru validarea simplă a e-mailurilor în java. Vă rugăm să rețineți că validarea e-mailurilor în java fără expresie regulată poate fi posibilă, dar nu este recomandată. Oriunde trebuie să aveți de-a face cu modele, expresiile regulate sunt prietenele voastre.

Vă rugăm să vă simțiți liberi să folosiți acest regex, precum și să îl modificați în funcție de nevoile suplimentare ale aplicației dumneavoastră.

Învățare plăcută !!

Lasă un răspuns

Adresa ta de email nu va fi publicată.