如何验证电子邮件地址格式?(How to validate an email address format?)

优质
小牛编辑
122浏览
2023-12-01

问题描述 (Problem Description)

如何验证电子邮件地址格式?

解决方案 (Solution)

以下示例演示了如何使用String类的matches()方法验证电子邮件地址。

public class Main {
   public static void main(String[] args) {
      String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
      String email1 = "user@domain.com";
      Boolean b = email1.matches(EMAIL_REGEX);
      System.out.println("is e-mail: "+email1+" :Valid = " + b);
      String email2 = "user^domain.co.in";
      b = email2.matches(EMAIL_REGEX);
      System.out.println("is e-mail: "+email2+" :Valid = " + b);
   }
}

结果 (Result)

上面的代码示例将产生以下结果。

is e-mail: user@domain.com :Valid = true
is e-mail: user^domain.co.in :Valid = false

以下是验证电子邮件地址格式的示例。

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
   public static void main(String args[]) {
      List emails = new ArrayList();
      emails.add("sairamkrishna@xnip.cn");
      emails.add("kittuprasad700@gmail.com");
      emails.add("sairamkrishna_mammahe%google-india.com");
      emails.add("sairam.krishna@gmail-indai.com");
      emails.add("sai#@youtube.co.in");
      emails.add("kittu@domaincom");
      emails.add("kittu#gmail.com");
      emails.add("@pindom.com");
      String regex = "^(.+)@(.+)$";
      Pattern pattern = Pattern.compile(regex);
      for (Object email : emails) {
         Matcher matcher = pattern.matcher((CharSequence) email);
         System.out.println(email + " : " + matcher.matches());
      } 
   }
}

上面的代码示例将产生以下结果。

sairamkrishna@xnip.cn : true
kittuprasad700@gmail.com : true
sairamkrishna_mammahe%google-india.com : false
sairam.krishna@gmail-indai.com : true
sai#@youtube.co.in : true
kittu@domaincom : true
kittu#gmail.com : false
@pindom.com : false