Java 中的电子邮件验证

Siddharth Swami 2021年11月20日 2021年10月2日
Java 中的电子邮件验证

在使用任何电子邮件之前,我们必须对其进行验证。电子邮件在设计表单中起着至关重要的作用。使用 Java 中的正则表达式,我们可以验证电子邮件。我们导入 java.util.regex 包来处理 Java 中的正则表达式。

Java 为我们提供了一些使用正则表达式来验证电子邮件的方法。几种正则表达式模式可以帮助验证 Java 中的电子邮件。

第一种方法是使用最简单的正则表达式。^(.+)@(.+)$ 模式是检查电子邮件中@ 符号的最简单的表达式。在这种方法中,它不会关心符号前后的字符。它只会为该电子邮件提供 false。

下面的代码演示了上述方法。

import java.util.regex.*;
import java.util.*;
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");
        }
    }
}

输出:

example@domain.com : true

@helloworld.com : false

在上面的例子中,我们创建了一个包含有效和无效电子邮件的电子邮件列表。我们使用 matcher 类来创建一个方法来检查给定的电子邮件是否与模式匹配。

第二种模式用于对用户名部分方法添加限制。这里 [A-Za-z0-9+_.-]+@(.+)$ 是用于验证电子邮件的正则表达式。它检查电子邮件的用户名部分,并根据它验证电子邮件。这种方法有一些规则。用户名可以包含 A-Z 字符、a-z 字符、0-9 数字、点(.)、下划线(_)。用户名包含上述以外的字符,则不会被验证。

例如,

import java.util.regex.*;
import java.util.*;
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");  
        }  
    }  
}  

输出:

example@domain.com : true

example2@domain.com : true

@helloworld.com : false

12Bye#domain.com : false

RFC 5322 方法允许用于电子邮件验证的第三种模式。^[a-zA-Z0-9_!#$%&'\*+/=?{|}~^.-]+@[a-zA-Z0-9.-]+$ 是常规的用于验证电子邮件的表达式。使用了 RFC 允许用于电子邮件格式的所有字符。

例如,

import java.util.regex.*;    
import java.util.*;    
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");  
        }  
    }  
}

输出:

example@domain.com : true

exampletwo@domain.com : true

12@domain.com : true

@helloworld.com : false

相关文章 - Java Email