Java e-mail érvényesítés regex használatával

Az e-mail érvényesítés a reguláris kifejezések használatával közös feladat, amely bármely olyan alkalmazásban szükséges lehet, amely a regisztrációs lépésben szükséges információként e-mail címet keres. Lehet, hogy több felhasználási eset is van, de ez itt nem a vita tárgya.

Kezdjük meg közvetlenül a fő témát, azaz az e-mail érvényesítését Java-ban szabályos kifejezésekkel.

A legegyszerűbb regex az e-mail érvényesítéséhez

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

Ez a legegyszerűbb, és csak az ‘@’ szimbólummal törődik. A ‘@’ szimbólum előtt és után tetszőleges számú karakter lehet. Lássunk egy gyors példát, hogy lássuk, mire gondolok.

Program kimenet.

Ez a minta elérhető a Common lang EmailValidator osztályában. Tehát ha megfelel az Ön igényeinek, akkor közvetlenül ezt az osztályt használhatja.

Adding Restrictions on User Name part

Regex : ^+@(.+)$

Ezzel a regexszel néhány korlátozást adtunk hozzá az e-mail cím felhasználónév részéhez. A fenti regexben szereplő korlátozások a következők:

Teszteljünk néhány e-mail címet a fenti regexszel szemben.

Program kimenete.

Kérem, vegye figyelembe, hogy hasonló korlátozást alkalmazhat a domain név részre is. Akkor a reguláris kifejezés így fog kinézni.

^+@+$

Java email validáció engedélyezett az RFC 5322

Regex : ^+@+$

Ez a regex példa az e-mail üzenet formátumát szabályozó RFC 5322 által megengedett összes karaktert használja. A megengedett karakterek között vannak olyanok, amelyek biztonsági kockázatot jelentenek, ha közvetlenül a felhasználói bemenetből kerülnek át egy SQL-kijelentésbe, mint például a szimpla idézőjel (‘) és a pipe karakter (|).

Az olyan biztonsági rések, mint az SQL-injekciós támadások megelőzése érdekében, mint például az SQL-injekciós támadások, mindenképpen meg kell szüntetnie az érzékeny karaktereket, amikor az e-mail címet egy másik programnak átadott karakterláncba illeszti be.

Program kimenete.

Regex a vezető, követő vagy egymást követő pontok korlátozására az e-mailekben

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

A helyi rész és a tartománynév is tartalmazhat egy vagy több pontot, de két pont nem lehet közvetlenül egymás mellett. Továbbá a helyi rész és a domainnév első és utolsó karaktere nem lehet pont:

Program kimenete.

Regex a felső szintű domainben szereplő karakterek számának korlátozására

Módosítsuk most a regexet úgy, hogy a domainnévnek legalább egy pontot kell tartalmaznia, és a domainnév utolsó pont utáni része csak betűkből állhat.

Tegyük fel, hogy a domainnevek a secondlevel.com vagy a thirdlevel.secondlevel.com típusúak. A legfelső szintű domain (.com ezekben a példákban) csak kettőtől hat betűig terjedő betűkből állhat.

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

Program kimenete.

Ez utóbbi regex az én ajánlásom az egyszerű e-mail érvényesítéshez java-ban. Kérjük, vegye figyelembe, hogy az e-mail érvényesítés java-ban szabályos kifejezés nélkül is lehetséges, de nem ajánlott. Bárhol, ahol mintákkal kell foglalkoznia, a reguláris kifejezések a barátja.

Kérem, használja bátran ezt a regexet, valamint szerkessze az alkalmazás további igényeinek megfelelően.

Boldog tanulást !!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.