Validation des e-mails en Java

Siddharth Swami 12 octobre 2023
Validation des e-mails en Java

Avant d’utiliser un email, nous devons le valider. Les e-mails jouent un rôle essentiel dans la conception des formulaires. En utilisant l’expression régulière en Java, nous pouvons valider un e-mail. Nous importons le package java.util.regex pour travailler avec des expressions régulières en Java.

Java nous fournit quelques moyens d’utiliser une expression régulière pour valider les e-mails. Plusieurs modèles d’expressions régulières peuvent aider à valider les e-mails en Java.

La première méthode consiste à utiliser la regex la plus simple. Le motif ^(.+)@(.+)$ est l’expression la plus simple qui vérifie le symbole @ dans les e-mails. Dans cette méthode, il ne se souciera pas des caractères avant et après le symbole. Il donnera simplement faux pour cet e-mail.

Le code ci-dessous illustre la méthode ci-dessus.

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");
    }
  }
}

Production:

example@domain.com : true

@helloworld.com : false

Dans l’exemple ci-dessus, nous avons créé une liste d’e-mails contenant des e-mails valides et invalides. Nous utilisons la classe matcher pour créer une méthode qui vérifie si un e-mail donné correspond ou non au modèle.

Le deuxième modèle est utilisé pour ajouter une restriction sur la méthode de partie de nom d’utilisateur. Ici [A-Za-z0-9+_.-]+@(.+)$ est l’expression régulière utilisée pour valider l’email. Il vérifie la partie nom d’utilisateur de l’e-mail et, en fonction de celle-ci, valide l’e-mail. Il y a quelques règles pour cette méthode. Le nom d’utilisateur peut contenir des caractères A-Z, des caractères a-z, des chiffres 0-9, un point (.), un trait de soulignement (_). Nom d’utilisateur comportant des caractères autres que ceux mentionnés ci-dessus, il ne sera alors pas validé.

Par exemple,

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");
    }
  }
}

Production:

example@domain.com : true

example2@domain.com : true

@helloworld.com : false

12Bye#domain.com : false

Le troisième modèle de validation des e-mails est autorisé par la méthode RFC 5322. Le ^[a-zA-Z0-9_!#$%&'\*+/=?{|}~^.-]+@[a-zA-Z0-9.-]+$ est le régulier expression à utiliser pour valider les e-mails. Tous les caractères autorisés pour le format de courrier électronique par la RFC sont utilisés.

Par exemple,

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");
    }
  }
}

Production:

example@domain.com : true

exampletwo@domain.com : true

12@domain.com : true

@helloworld.com : false