JAVA正则表达式校验中国大陆手机号段【2022年2月】

JAVA正则表达式校验中国大陆手机号段【2022年2月】

最近做了一个通讯录的程序,需要用到手机号合规性检验,了解到了正则表达式。

一、目前的号段

截至2022年2月,中国大陆四家运营商以及虚拟运营商的号段如下(如有更新欢迎评论区纠正):

  1. 中国移动: 139、138、137、136、134、135、147、150、151、152、157、158、159、172、178、182、183、184、187、188、195、197、198。
  2. 中国联通: 130、131、132、140、145、146、155、156、166、185、186、175、176、196。
  3. 中国电信: 133、149、153、177、173、180、181、189、190、191、193、199。
  4. 中国广电: 192。
  5. 虚拟运营商: 162、165、167、170、171。

二、校验代码

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Check {
    public static boolean isPhone(String Phone_number) {
        String regex = "^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))\\d{8}$";
        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(Phone_number);
        return m.matches();
    }
}

号段参考: https://m.jihaoba.com/tools/haoduan/

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值