Java e-mail validering ved hjælp af regex

E-mail validering ved hjælp af regulære udtryk er en almindelig opgave, som kan være nødvendig i enhver applikation, der søger e-mailadresse som krævede oplysninger i registreringstrin. Der kan være flere tilfælde af anvendelse, men det er ikke punktet for diskussionen her.

Lad os springe direkte ind i hoveddiskussionen, dvs. at validere e-mail i Java ved hjælp af regulære udtryk.

Simpelste regex til validering af e-mail

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

Denne er den enkleste og bekymrer sig kun om ‘@’-symbolet. Før og efter ‘@’-symbolet kan der være et vilkårligt antal tegn. Lad os se et hurtigt eksempel for at se, hvad jeg mener.

Program Output.

Dette mønster er tilgængeligt i Common lang’s EmailValidator-klasse. Så hvis det passer til dit behov, kan du direkte bruge denne klasse.

Tilføjelse af begrænsninger på brugernavnedelen

Regex : ^+@(.+)$

I denne regex har vi tilføjet nogle begrænsninger på brugernavnedelen af e-mail-adressen. Restriktioner i ovenstående regex er:

Lad os teste nogle e-mail-adresser mod ovenstående regex.

Program Output.

Bemærk venligst, at lignende begrænsning du kan anvende på domænenavnsdelen også. Så vil det regulære udtryk blive som dette.

^+@+$

Java e-mail-validering tilladt af RFC 5322

Regex : ^+@+$

Dette regex-eksempel bruger alle de tegn, der er tilladt i RFC 5322, som regulerer e-mail-meddelelsesformatet. Blandt de tilladte tegn er der nogle, der udgør en sikkerhedsrisiko, hvis de overføres direkte fra brugerinput til en SQL-anvisning, f.eks. det enkelte citationstegn (‘) og pipe-tegnet (|).

Du bør sørge for at undslippe følsomme tegn, når du indsætter e-mail-adressen i en streng, der overføres til et andet program, for at forhindre sikkerhedshuller som f.eks. SQL-injektionsangreb.

Programoutput.

Regex til begrænsning af ledende, afsluttende eller på hinanden følgende punkter i e-mails

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

Både den lokale del og domænenavnet kan indeholde en eller flere prikker, men der må ikke forekomme to prikker lige ved siden af hinanden. Desuden må det første og sidste tegn i den lokale del og i domænenavnet ikke være prikker:

Program Output.

Regex til begrænsning af antal tegn i topdomæne

Lader os nu ændre regex’en således, at domænenavnet skal indeholde mindst én prik, og at den del af domænenavnet, der ligger efter den sidste prik, kun kan bestå af bogstaver.

Lad os sige, at domænenavne er som secondlevel.com eller thirdlevel.secondlevel.com. Topniveaudomænet (.com i disse eksempler) må kun bestå af to til seks bogstaver.

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

Programoutput.

Denne sidste regex er min anbefaling til simpel e-mailvalidering i java. Bemærk venligst, at e-mailvalidering i java uden regulære udtryk kan være muligt, men det anbefales ikke. Alle steder, hvor du har brug for at håndtere mønstre, er regulære udtryk din ven.

Du er velkommen til at bruge denne regex samt redigere den som pr. din applikations yderligere behov.

Happy Learning !!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.