java-正则表达式判断手机号

 

java-正则表达式判断手机号

标签: 正则表达式手机importstringclass电信
  129624人阅读  评论(14)  收藏  举报
  分类:
java开发(38) 
 

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

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

   

[java]  view plain  copy
  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.   }  


第二种方法:

  

[java]  view plain  copy
  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  


 

8
0
 
 

  相关文章推荐
  •  Java正则表达式判断是否为手机号码
  •  深度学习部署系统构建--刘文志
  •  Java正则表达式——验证手机号和电话号码
  •  搜狗机器翻译技术分享--陈伟
  •  Java 验证手机号码
  •  Hadoop生态系统零基础入门
  •  Java快速判断是不是手机号
  •  最懂程序员的学习方式 TensorFlow入门
  •  Java实现发送手机验证码
  •  Retrofit 从入门封装到源码解析
  •  java判断手机号运营商
  •  程序员如何转型AI工程师--蒋涛
  •  利用Java正则表达式验证手机号、邮箱等
  •  java RSA加密解密实现
  •  判断手机号码是否合法(移动,联通,电信)
  •  php 正则判断是否是手机号码 最新
查看评论
12楼  这个杀手不太愣 2017-07-19 10:21发表 [回复]
/^1[34578][0-9]{9}$/
这个至少包含所有对的
11楼  老鼠拧刀满街找猫 2016-12-10 00:08发表 [回复]
最新的在这边
http://blog.csdn.net/linbilin_/article/details/49796617
10楼  亲爱的Joe 2016-08-24 15:20发表 [回复]
182的号,匹配不了
9楼  陌上丿花已开 2016-01-28 18:17发表 [回复]
号段gen更新了 怎么整
8楼  baidu_32143681 2015-10-19 20:57发表 [回复]
public class Tel {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String regex = "1[358]\\d{9}";
String Tel = "15719371601";
if (Tel.matches(regex)) {
System.out.println(Tel + "是合法的手机号");
}
}
}
7楼  金灿灿的Bug 2014-12-04 21:20发表 [回复]
soga
6楼  西电小楠 2014-09-07 18:55发表 [回复]
唉,卡的越严,有用时间就越短啊……
5楼  菜鸟技巧汇总 2014-04-13 16:09发表 [回复]
你这个手机表达式缺187吧?
4楼  lvhongfen 2013-06-27 15:27发表 [回复]
LZ第一种验证方法现在不适用了,像移动的183、182就验证失败
新改了正则表达式:
public static boolean isMobileNumber(String mobiles){
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
return m.matches();
}
Re:  噫長流 2014-03-26 17:14发表 [回复]
回复lvhongfen:你这个也是不行的。。。147就不可以
3楼  ctluo111 2013-06-17 12:03发表 [回复]
好复杂的样子
2楼  a825896740 2013-03-20 17:16发表 [回复]
,gang kandao
1楼  dota_king 2013-01-24 11:10发表 [回复]
恩,这搞得挺好的,就拿来用用哈!!!

你可能感兴趣的:(微信支付接口)