Java 示例 - 验证电子邮件地址格式

  • 问题描述

    如何验证电子邮件地址格式?
  • 解决方案

    以下示例演示如何使用 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);
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    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@cainiaoya.com");
          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@cainiaoya.com : 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