E-Mail-Validierung in Java

Siddharth Swami 12 Oktober 2023
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