分享

java

 奋斗的小乌龟52 2015-11-20
    

  要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,

  故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:

  移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

  联通:130、131、132、152、155、156、185、186

  电信:133、153、180、189、(1349卫通)

  那么现在就可以正则匹配测试了,

   

  1. import java.io.IOException;  
  2.   
  3.   import java.util.regex.Matcher;  
  4.   
  5.   import java.util.regex.Pattern;  
  6.   
  7.   public class ClassPathResource {  
  8.   
  9.   public static boolean isMobileNO(String mobiles){  
  10.   
  11.   Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");  
  12.   
  13.   Matcher m = p.matcher(mobiles);  
  14.   
  15.   System.out.println(m.matches()+"---");  
  16.   
  17.   return m.matches();  
  18.   
  19.   }  
  20.   
  21.   public static void main(String[] args) throws IOException {  
  22.   
  23.   System.out.println(ClassPathResource.isMobileNO("12016155153"));  
  24.   
  25.   }  
  26.   
  27.   }  


第二种方法:

  

  1. import java.util.regex.Matcher;  
  2.   
  3.   import java.util.regex.Pattern;  
  4.   
  5.   String value="手机号";  
  6.   
  7.   String regExp = "^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$";  
  8.   
  9.   Pattern p = Pattern.compile(regExp);  
  10.   
  11.   Matcher m = p.matcher(value);  
  12.   
  13.   return m.find();//boolean  


  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约