Java-sähköpostin validointi regexin avulla

Sähköpostin validointi säännöllisten lausekkeiden avulla on yleinen tehtävä, jota voidaan tarvita missä tahansa sovelluksessa, joka hakee sähköpostiosoitetta vaadittuina tietoina rekisteröintivaiheessa. Käyttötapauksia voi olla muitakin, mutta se ei ole tämän keskustelun aihe.

Hyppäämme suoraan pääkeskusteluun eli sähköpostin validointiin Javassa käyttäen säännöllisiä lausekkeita.

Simplest regex to validate email

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

Tämä on yksinkertaisin ja välittää vain ’@’-symbolista. Ennen ja jälkeen ’@’-symbolin voi olla mikä tahansa määrä merkkejä. Katsotaanpa nopea esimerkki, jotta nähdään, mitä tarkoitan.

Ohjelman ulostulo.

Tämä kuvio on saatavilla Common langin EmailValidator-luokassa. Joten jos se sopii tarpeisiisi, voit käyttää suoraan tätä luokkaa.

Rajoitusten lisääminen käyttäjätunnusosaan

Regex : ^+@(.+)$

Tässä regexissä olemme lisänneet joitakin rajoituksia sähköpostiosoitteen käyttäjätunnusosaan. Rajoitukset yllä olevassa regexissä ovat:

Testataan joitakin sähköpostiosoitteita yllä olevaa regexiä vastaan.

Ohjelman tuotos.

Huomaa, että samanlaista rajoitusta voit soveltaa myös verkkotunnusosaan. Silloin säännöllisestä lausekkeesta tulee tällainen.

^+@+$

Java-sähköpostin validointi sallittu RFC 5322:ssa

Regex : ^+@+$

Tässä regex-esimerkissä käytetään kaikkia sähköpostiviestin muotoa säätelevän RFC 5322:n sallimia merkkejä. Sallittujen merkkien joukossa on joitakin, jotka aiheuttavat tietoturvariskin, jos ne siirretään suoraan käyttäjän syötteestä SQL-lausekkeeseen, kuten yksinkertaiset lainausmerkit (’) ja putkimerkki (|).

Sähköpostiosoitetta toiselle ohjelmalle välitettävään merkkijonoon lisättäessä on syytä varmistaa, että arkaluonteiset merkit vältetään, jotta estetään SQL-injektiohyökkäysten kaltaiset tietoturva-aukot.

Ohjelman ulostulo.

Regex etu-, peräkkäis- tai peräkkäisten pisteiden rajoittamiseksi sähköpostiviesteissä

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

Sekä paikallinen osa että verkkotunnus voivat sisältää yhden tai useamman pisteen, mutta kaksi pistettä ei saa olla aivan vierekkäin. Lisäksi paikallisen osan ja verkkotunnuksen nimen ensimmäinen ja viimeinen merkki eivät saa olla pisteitä:

Ohjelman ulostulo.

Regex, jolla rajoitetaan merkkien määrää ylimmän tason verkkotunnuksessa

Muutetaan nyt regexiä siten, että verkkotunnuksen nimessä on oltava vähintään yksi piste ja että verkkotunnuksen nimen viimeisen pisteen jälkeinen osa voi koostua vain kirjaimista.

Esitettäköön, että verkkotunnusten nimet ovat muotoa toisentasoinen.com tai kolmannentasoinen.toisentaso.com. Ylimmän tason verkkotunnus (.com näissä esimerkeissä) saa koostua vain kahdesta kuuteen kirjaimeen.

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

Ohjelman ulostulo.

Tämä viimeinen regex on suositukseni yksinkertaiseen sähköpostin validointiin javassa. Huomaa, että sähköpostin validointi javassa ilman säännöllisiä lausekkeita voi olla mahdollista, mutta sitä ei suositella. Kaikkialla, missä joudut käsittelemään kuvioita, säännölliset lausekkeet ovat ystäväsi.

Käyttäkää vapaasti tätä regexiä sekä muokatkaa sitä sovelluksenne lisätarpeiden mukaan.

Happy Learning !!

Vastaa

Sähköpostiosoitettasi ei julkaista.