中国大陆地区手机号运营商正则表达式

如何通过手机号识别所属运营商,移动、联通还是电信,2022年新增了广电运营上号段192。

网上找缺斤少两,最后还是得自己来,细节就不说了,直接上代码。

    @Test
    void phoneOperator() {
        String mobile = "19213149699";
        // 广电
        String gdcc = "192\\d{8}";
        // 移动
        String cmcc = "(^1(3[5-9]|4[78]|5[0-27-9]|65|7[28]|8[2-478]|9[578])\\d{8}$)|(^134[0-8]\\d{7}$)|(^1440\\d{7}$)|(^170[356]\\d{7}$)";
        // 联通
        String cucc = "(^1(3[0-2]|4[56]|5[56]|6[67]|7[156]|8[56]|96)\\d{8}$)|(^170[47-9]\\d{7}$)";
        // 电信
        String ctcc = "(^1(33|49|53|62|7[37]|8[019]|9[0139])\\d{8}$)|(^1349\\d{7}$)|(^1410\\d{7}$)|(^17(0[012]|40)\\d{7}$)";

        Pattern regexpCmcc = Pattern.compile(cmcc);
        Pattern regexpCucc = Pattern.compile(cucc);
        Pattern regexpCtcc = Pattern.compile(ctcc);
        Pattern regexpGdcc = Pattern.compile(gdcc);

        if (regexpCmcc.matcher(mobile).matches()) {
            log.info("{} is cmcc",mobile);
        }
        if (regexpCucc.matcher(mobile).matches()) {
            log.info("{} is cucc",mobile);
        }
        if (regexpCtcc.matcher(mobile).matches()) {
            log.info("{} is ctcc",mobile);
        }
        if (regexpGdcc.matcher(mobile).matches()) {
            log.info("{} is gdcc",mobile);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lizz666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值