Java 示例 - 匹配电话号码

  • 简述

    iv>
  • 问题描述

    如何匹配列表中的电话号码?
  • 解决方案

    以下示例显示如何使用 phone.matches(phoneNumberPattern) 方法将列表中的电话号码与粒子图案匹配。
    
    public class MatchPhoneNumber {
       public static void main(String args[]) {
          isPhoneValid("1-999-585-4009");
          isPhoneValid("999-585-4009");
          isPhoneValid("1-585-4009");
          isPhoneValid("585-4009");
          isPhoneValid("1.999-585-4009");
          isPhoneValid("999 585-4009");
          isPhoneValid("1 585 4009");
          isPhoneValid("111-Java2s");
       }
       public static boolean isPhoneValid(String phone) {
          boolean retval = false;
          String phoneNumberPattern = "(\\d-)?(\\d{3}-)?\\d{3}-\\d{4}";
          retval = phone.matches(phoneNumberPattern);
          String msg = "NO MATCH: pattern:" + phone + "\r\n regex: " + phoneNumberPattern;
          
          if (retval) {
             msg = " MATCH: pattern:" + phone + "\r\n regex: " + phoneNumberPattern;
          }
          System.out.println(msg + "\r\n");
          return retval;
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    MATCH: pattern:1-999-585-4009
           regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    MATCH: pattern:999-585-4009
           regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    MATCH: pattern:1-585-4009
           regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    NOMATCH: pattern:1.999-585-4009
     regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    NOMATCH: pattern:999 585-4009
     regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    NOMATCH: pattern:1 585 4009
     regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    NOMATCH: pattern:111-Java2s
     regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
    
    以下是验证电话号码的示例。
    
    public class Main { 
       private static boolean isValid(String s) {
          String regex = "\\d{2}-\\d{4}-\\d{6}"; 
          return s.matches(regex);
       } 
       public static void main(String[] args) {
          System.out.println(isValid("91-9652-018244"));
       } 
    }
    
    上面的代码示例将产生以下结果。
    
    true