【转】更严格的手机号码正则表达式写法

要更加准确的匹配手机号码只匹配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卫通)

 

详见:[url=http://blog.myspace.cn/e/405268924.htm]http://blog.myspace.cn/e/405268924.htm[/url] 那么现在就可以正则匹配测试了,

 

Java代码    收藏代码
  1. import java.io.IOException;  
  2. import java.util.regex.Matcher;  
  3. import java.util.regex.Pattern;  
  4.   
  5. public class ClassPathResource {  
  6.     public static boolean isMobileNO(String mobiles){     
  7.         Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");     
  8.         Matcher m = p.matcher(mobiles);     
  9.         System.out.println(m.matches()+"---");     
  10.         return m.matches();     
  11.     }     
  12.     public static void main(String[] args) throws IOException {     
  13.         System.out.println(ClassPathResource.isMobileNO("18616155153"));     
  14.     }  
  15. }  
  16. 转:http://ipc.iteye.com/blog/689257

猜你喜欢

转载自gdfdfg-tech.iteye.com/blog/1938848