JAVA 手机号码格式验证,使用正则表达式

正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

元字符

字符描述
^匹配输入字符串的开始位置。
$匹配输入字符串的结束位置。
{n}n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
[a-z]字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。
\d匹配一个数字字符。等价于 [0-9]。

当然不止上面那么少的元字符,只列出来用到的,还有很多元字符,包括普通字符、非打印字符、特殊字符、限定符、定位符等。如果想要了解更多关于这方面的知识,可以点这里。正则表达式 - 教程

手机号码格式验证

我国使用的号码为11位,其中:

  • 中国电信号段
    133、1349、1410、149、153、162、170(0-2)、173、174(0-1)、177、180、181、189、190、191、193、199
  • 中国联通号段
    130、131、132、140、145、146、155、156、166、167、170(4.7-9)、171、175、176、185、186、196
  • 中国移动号段
    134(0-8)、135、136、137、138、139、1440、147、148、150、151、152、157、158、159、165、170(3.5.6)、172、178、182、183、184、187、188、195 、197、198
    其中工信部向中国移动核配195号段,共计1亿号码资源。
  • 中国广电号段
    192
  • 其他号段
    14号段部分为上网卡专属号段:中国联通145,中国移动147,中国电信149
    详细情况可以参考手机号码_百度百科

根据上面的资料可以得出的结论:

描述正则表达式
第一位数字肯定是11
第二位数字只能是3或4或5或6或7或8或9[3-9]
剩下的九位数字可以是0-9之间任意一位数字\d {9}

So,将上面的正则表达式连起来就是验证手机号码格式的正则表达式了:

^1[3-9]\d{9}$

以"^“开始,以”$"结束。

JAVA代码实现:

public static boolean isValidPhoneNumber(String phoneNumber) {
        if ((phoneNumber != null) && (!phoneNumber.isEmpty())) {
            return Pattern.matches("^1[3-9]\\d{9}$", phoneNumber);
        }
        return false;
    }
  • 40
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值