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 !!