在开发中有时会有这样的需求,就是判断用户输入的手机号码是否正确,这里最好是使用正则表达式来解决。

下面是提供一个大致思路,作为学习和参考吧,具体一些场景和特例可能也没考虑到,

贴出一个电话号码检查的工具类,基本的电话号码格式都能够满足了。

由百度知道得知:(更新于 2018-03-31)

  1. 中国电信号段:133、149、153、173、177、180、181、189、199

  2. 中国联通号段:130、131、132、145、155、156、166、175、176、185、186

  3. 中国移动号段:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198

  4. 14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;public class PhoneFormatCheckUtils {/*** 大陆号码或香港号码均可*/public static boolean isPhoneLegal(String str) throws PatternSyntaxException {return isChinaPhoneLegal(str) || isHKPhoneLegal(str);}/*** 大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数* 此方法中前三位格式有:* 13+任意数* 145,147,149* 15+除4的任意数(不要写^4,这样的话字母也会被认为是正确的)* 166* 17+3,5,6,7,8* 18+任意数* 198,199*/public static boolean isChinaPhoneLegal(String str) throws PatternSyntaxException {// ^ 匹配输入字符串开始的位置// \d 匹配一个或多个数字,其中 \ 要转义,所以是 \\d// $ 匹配输入字符串结尾的位置String regExp = "^((13[0-9])|(14[5,7,9])|(15[0-3,5-9])|(166)|(17[3,5,6,7,8])" +"|(18[0-9])|(19[8,9]))\\d{8}$";Pattern p = Pattern.compile(regExp);Matcher m = p.matcher(str);return m.matches();}/*** 香港手机号码8位数,5|6|8|9开头+7位任意数*/public static boolean isHKPhoneLegal(String str) throws PatternSyntaxException {// ^ 匹配输入字符串开始的位置// \d 匹配一个或多个数字,其中 \ 要转义,所以是 \\d// $ 匹配输入字符串结尾的位置String regExp = "^(5|6|8|9)\\d{7}$";Pattern p = Pattern.compile(regExp);Matcher m = p.matcher(str);return m.matches();}}

当然,这里使用正则表达式不一定都面面俱到了,以后万一又有什么新的格式了也不好说,不过道理都是一样的,修改一下正则表达式的规则就行。

注意:如果号码存在什么更新或者错误的地方,可以及时艾特我更新,谢谢~~

Java / Android 正则表达式判断是否为手机号码相关推荐

  1. java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_灵思致远Leansmall的博客-CSDN博客_java判断字符串只包含数字字母

    import java.util.regex.Matcher; import java.util.regex.Pattern;public class StrValidate {// 纯数字priva ...

  2. 电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码

    JavaScript中可以使用正则表达式var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;来判断是否为11位有效电话号码. JavaScript中可以使用正则表达式判断是否为1 ...

  3. Java正则表达式判断是否为手机号码

    在开发中有时会有这样的需求,就是判断用户输入的手机号码是否正确,这里就需要使用到了正则表达式. 这里贴出一个电话号码检查的工具类,基本的电话号码格式都能够满足了. [java]  view plain ...

  4. Java正则表达式判断是否为手机号码(支持最新166、188、199号段)

    转载请注明原文出处:https://www.obatis.com/article/2020102010315350032164324759

  5. 在Java中用正则表达式判断一个字符串是否是数字的方法

    package chengyujia;import java.util.regex.Pattern;public class NumberUtil {/*** 判断一个字符串是否是数字.* * @pa ...

  6. java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字

    /*判断字符串中是否仅包含字母数字和汉字       *各种字符的unicode编码的范围:      * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])      * 数 ...

  7. Java用正则表达式判断学号,利用正则表达式验证学号_利用正则表达式开发动态网页...

    [摘 要]在动态网页设计中,利用正则表达式可以高效.快速地进行开发,本文探讨了在PHP中利用正则表达式进行url地址解析,密码和邮件验证以及文本文件的处理. [关键词]正则表达式 PHP 动态网页 [ ...

  8. Java 用正则表达式判断输入的电话号码格式是否正确 | 工具类

    import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang3.Stri ...

  9. Java通过正则表达式判断字符串当中是否有特殊符号

    public static void main(String[] args) { // TODO Auto-generated method stub String str="判断的字符串& ...

最新文章

  1. 人脑认知科学对人工智能的启示
  2. macos自带java_在 MacOS 上安装 Java - Java 入门教程
  3. 修改elementUI组件样式无效的问题研究
  4. 基础才是重中之重~方法override详解
  5. bzoj1684[Usaco2005 Oct]Close Encounter*
  6. 基于ZooKeeper的Dubbo注册中心【转】
  7. 29岁当教授,发表11篇Nature和Science,这位顶尖科学家正式全职回国
  8. Intellij IDEA展示类中的方法树形结构
  9. cp分解实现_对标Eureka的AP一致性,Nacos如何实现Raft算法
  10. Android应用按Home键再从图标启动会再次经过LAUNCHER启动页
  11. XM7 FOR ANDROID,[转]2014年初Android平台主机模拟器大全
  12. 微信小程序后端用python_使用django开发微信小程序后端
  13. vue函数@click.prevent使用纪要
  14. 计算机固态硬盘256g,1t(后悔买256g的固态硬盘了)
  15. 愿天下有情人都是失散多年的兄妹 (25分)
  16. C语言 模拟简单的地铁售票系统
  17. vscode cshtml 智能提示
  18. Java · PTA探险之旅
  19. 9月19日真实虾皮裁员经历...
  20. 2019太原理工大学计算机录取分数线,太原理工大学2019年各省录取分数线

热门文章

  1. python绘制箱线图boxplot()
  2. Lombok - 消除冗长的 java 代码
  3. 打开创建文件Open()、Create()函数
  4. c++笔记2——cin原理及其用法
  5. 微信H5页面兼容性解决方案
  6. IDEA 方法注释模板配置
  7. php连接共享打印机实例,win10怎么连接共享打印机
  8. 1 素问篇-上古天真论
  9. Mysql出现问题:ERROR 1044 (42000 (ER_DBACCESS_DENIED_ERROR)): Access denied for user ‘%s‘@‘%s‘ to d解决方案
  10. 字符流和字节流的区别和使用