您的位置:首页 > 编程语言 > Java开发

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

2017-10-24 11:35 253 查看
 


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

标签: 正则表达式手机importstringclass电信
2012-03-16 13:27 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

import java.io.IOException;  

  

  import java.util.regex.Matcher;  

  

  import java.util.regex.Pattern;  

  

  public class ClassPathResource {  

  

  public static boolean isMobileNO(String mobiles){  

  

  Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");  

  

  Matcher m = p.matcher(mobiles);  

  

  System.out.println(m.matches()+"---");  

  

  return m.matches();  

  

  }  

  

  public static void main(String[] args) throws IOException {  

  

  System.out.println(ClassPathResource.isMobileNO("12016155153"));  

  

  }  

  

  }  

第二种方法:

  

[java] view
plain copy

import java.util.regex.Matcher;  

  

  import java.util.regex.Pattern;  

  

  String value="手机号";  

  

  String regExp = "^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$";  

  

  Pattern p = Pattern.compile(regExp);  

  

  Matcher m = p.matcher(value);  

  

  return m.find();//boolean  

 




8

0
 
 

上一篇android-如何检查手机和无线是否连接

下一篇java-实现汉字按字母顺序排序

  相关文章推荐

• 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发表 [回复]


恩,这搞得挺好的,就拿来用用哈!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: