Java e-mail validatie met behulp van regex

E-mail validatie met behulp van reguliere expressies is een gemeenschappelijke taak die kan worden vereist in elke toepassing die e-mail adres zoeken als vereiste informatie in de registratie stap. Er kunnen meer usecases, maar dat is niet punt van discussie hier.

Laten we direct springen in de belangrijkste discussie, dat wil zeggen om e-mail te valideren in Java met behulp van reguliere expressies.

Simpelste regex te valideren e-mail

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

Deze is het eenvoudigst en houdt zich alleen bezig met het ‘@’-symbool. Voor en na het ‘@’-symbool kan een willekeurig aantal tekens staan. Laten we eens een snel voorbeeld bekijken om te zien wat ik bedoel.

Program Output.

Dit patroon is beschikbaar in Common lang’s EmailValidator klasse. Dus als het aan uw behoefte voldoet, kunt u deze klasse direct gebruiken.

Beperkingen toevoegen aan het gebruikersnaamgedeelte

Regex : ^+@(.+)$

In deze regex hebben we enkele beperkingen toegevoegd aan het gedeelte gebruikersnaam van het e-mailadres. De beperkingen in bovenstaande regex zijn:

Laten we eens wat email adressen testen met bovenstaande regex.

Uitvoer van het programma.

Let er op dat je een soortgelijke beperking ook kunt toepassen op het domeinnaam gedeelte. Dan wordt de reguliere expressie als volgt.

^+@+$

Java e-mailvalidatie toegestaan door RFC 5322

Regex : ^+@+$

Dit regex-voorbeeld gebruikt alle tekens die zijn toegestaan door RFC 5322, die de opmaak van e-mailberichten regelt. Onder de toegestane tekens zijn er enkele die een veiligheidsrisico vormen als ze rechtstreeks van gebruikersinvoer naar een SQL-instructie worden doorgegeven, zoals het enkele aanhalingsteken (‘) en het pijp-teken (|).

U moet er zeker van zijn dat u gevoelige tekens escaleert wanneer u het e-mailadres invoegt in een tekenreeks die aan een ander programma wordt doorgegeven, om veiligheidslekken zoals SQL-injectieaanvallen te voorkomen.

Uitvoer van programma’s.

Regex om voorlopende, achterlopende of opeenvolgende punten in e-mails te beperken

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

Zowel het lokale gedeelte als de domeinnaam mogen een of meer punten bevatten, maar er mogen geen twee punten direct naast elkaar staan. Bovendien mogen het eerste en laatste teken in het lokale gedeelte en in de domeinnaam geen punten zijn:

Uitvoer van het programma.

Regex om het aantal tekens in het topleveldomein te beperken

Laten we nu de regex zo aanpassen dat de domeinnaam ten minste één punt moet bevatten, en dat het gedeelte van de domeinnaam na de laatste punt alleen uit letters mag bestaan.

Laten we zeggen dat domeinnamen zoiets zijn als secondlevel.com of thirdlevel.secondlevel.com. Het top-level domein (.com in deze voorbeelden) mag alleen uit twee tot zes letters bestaan.

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

Uitvoer van het programma.

Deze laatste regex is mijn aanbeveling voor eenvoudige e-mailvalidatie in java. Merk op dat email validatie in java zonder reguliere expressie mogelijk is, maar het wordt niet aangeraden. Overal waar je te maken hebt met patronen, zijn reguliere expressies je vriend.

Voel je vrij om deze regex te gebruiken of aan te passen aan de aanvullende behoeften van je applicatie.

Happy Learning!!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.