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