E-Mail-Validierung in Java
Bevor wir eine E-Mail verwenden, müssen wir sie validieren. E-Mails spielen eine entscheidende Rolle bei der Gestaltung von Formularen. Mit dem regulären Ausdruck in Java können wir eine E-Mail validieren. Wir importieren das Paket java.util.regex
, um mit regulären Ausdrücken in Java zu arbeiten.
Java bietet uns einige Möglichkeiten, einen regulären Ausdruck zum Validieren von E-Mails zu verwenden. Mehrere Muster für reguläre Ausdrücke können bei der Validierung von E-Mails in Java helfen.
Die erste Möglichkeit besteht darin, die einfachste Regex zu verwenden. Das Muster ^(.+)@(.+)$
ist der einfachste Ausdruck, der das @
-Symbol in den E-Mails überprüft. Bei dieser Methode werden die Zeichen vor und nach dem Symbol nicht berücksichtigt. Es wird einfach false für diese E-Mail geben.
Der folgende Code demonstriert die obige Methode.
import java.util.*;
import java.util.regex.*;
public class Email_Validation {
public static void main(String args[]) {
ArrayList<String> email = new ArrayList<String>();
email.add("example@domain.com");
// Adding an invalid emails in list
email.add("@helloworld.com");
// Regular Expression
String regx = "^(.+)@(.+)$";
// Compile regular expression to get the pattern
Pattern pattern = Pattern.compile(regx);
// Iterate emails array list
for (String email1 : email) {
// Create instance of matcher
Matcher matcher = pattern.matcher(email1);
System.out.println(email1 + " : " + matcher.matches() + "\n");
}
}
}
Ausgabe:
example@domain.com : true
@helloworld.com : false
Im obigen Beispiel haben wir eine Liste mit E-Mails erstellt, die gültige und ungültige E-Mails enthalten. Wir verwenden die Klasse matcher
, um eine Methode zu erstellen, die überprüft, ob eine bestimmte E-Mail dem Muster entspricht oder nicht.
Das zweite Muster wird verwendet, um eine Einschränkung für die Benutzernamensteilmethode hinzuzufügen. Hier ist [A-Za-z0-9+_.-]+@(.+)$
der reguläre Ausdruck, der zur Validierung der E-Mail verwendet wird. Es überprüft den Benutzernamen der E-Mail und validiert die E-Mail entsprechend. Für diese Methode gibt es einige Regeln. Der Benutzername kann A-Z-Zeichen, a-z-Zeichen, 0-9 Zahlen, Punkt (.
), Unterstrich (_
) enthalten. Benutzername mit anderen als den oben genannten Zeichen, dann wird er nicht validiert.
Zum Beispiel,
import java.util.*;
import java.util.regex.*;
public class Email_Validation {
public static void main(String args[]) {
ArrayList<String> email = new ArrayList<String>();
email.add("example@domain.com");
email.add("example2@domain.com");
// Adding an invalid emails in list
email.add("@helloworld.com");
email.add("12Bye#domain.com");
// Regular Expression
String regx = "^[A-Za-z0-9+_.-]+@(.+)$";
// Compile regular expression to get the pattern
Pattern pattern = Pattern.compile(regx);
// Iterate emails array list
for (String email1 : email) {
// Create instance of matcher
Matcher matcher = pattern.matcher(email1);
System.out.println(email1 + " : " + matcher.matches() + "\n");
}
}
}
Ausgabe:
example@domain.com : true
example2@domain.com : true
@helloworld.com : false
12Bye#domain.com : false
Das dritte Muster für die E-Mail-Validierung wird von der RFC 5322-Methode zugelassen. Der ^[a-zA-Z0-9_!#$%&'\*+/=?{|}~^.-]+@[a-zA-Z0-9.-]+$
ist der reguläre Ausdruck, der bei der Validierung der E-Mails verwendet werden soll. Es werden alle Zeichen verwendet, die der RFC für das E-Mail-Format erlaubt.
Zum Beispiel,
import java.util.*;
import java.util.regex.*;
public class Email_Validation {
public static void main(String args[]) {
ArrayList<String> email = new ArrayList<String>();
email.add("example@domain.com");
email.add("exampletwo@domain.com");
email.add("12@domain.com");
// Adding an invalid emails in list
email.add("@helloworld.com");
// Regular Expression
String regx = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$";
// Compile regular expression to get the pattern
Pattern pattern = Pattern.compile(regx);
// Iterate emails array list
for (String email1 : email) {
// Create instance of matcher
Matcher matcher = pattern.matcher(email1);
System.out.println(email1 + " : " + matcher.matches() + "\n");
}
}
}
Ausgabe:
example@domain.com : true
exampletwo@domain.com : true
12@domain.com : true
@helloworld.com : false