栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java验证手机号码的工具类-截止2022年中国大陆四家运营商以及虚拟运营商手机号码校验

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java验证手机号码的工具类-截止2022年中国大陆四家运营商以及虚拟运营商手机号码校验

1、中国大陆四家运营商以及虚拟运营商手机号码段

截止2022年2月份中国大陆四家运营商以及虚拟运营商手机号码段如下:

中国移动发布的号码段为:134(0-8),135,136,137,138,139,147,148,150,151,152,157,

158,159,172,178,182,183,184,187,188,195,197,198,1440,1703,1705,1706 

 中国联通发布的号码段为:130,131,132,140,145,146,155,156,166,185,186,171,175,
176,196,1704,1707,1708,1709

中国电信发布的号码段为:133,149,153,177,173,180,181,189,190,191,193,199,1349,

1410,1700,1701,1702

中国广电发布的号码段为:192 

虚拟运营商发布的号码段为:162,165,167,170,171

2、号码段对应的正则表达式 

对应的正则表达式如下:

    
    private static final String CHINA_MOBILE_PATTERN = "(?:^(?:\+86)?1(?:34[0-8]|3[5-9]|4[78]|5[0-27-9]|7[28]|8[2-478]|9[578])\d{8}$)|(?:^(?:\+86)?1440\d{7}$)|(?:^(?:\+86)?170[356]\d{7}$)";

    
    private static final String CHINA_UNICOM_PATTERN = "(?:^(?:\+86)?1(?:3[0-2]|4[056]|5[56]|66|7[156]|8[56]|96)\d{8}$)|(?:^(?:\+86)?170[47-9]\d{7}$)";

    
    private static final String CHINA_TELECOM_PATTERN = "(?:^(?:\+86)?1(?:33|49|53|7[37]|8[019]|9[0139])\d{8}$)|(?:^(?:\+86)?1349\d{7}$)|(?:^(?:\+86)?1410\d{7}$)|(?:^(?:\+86)?170[0-2]\d{7}$)";

    
    private static final String CHINA_PATTERN = "(?:^(?:\+86)?1(?:3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$)";

3、使用正则进行手机号码校验 3.1、中国移动手机号码校验

判断手机号码是否属于中国移动

    
    public static boolean checkChinaMobile(String mobile) {
        if (StringUtils.checkStr(mobile)) {
            Pattern regexp = Pattern.compile(CHINA_MOBILE_PATTERN);
            return regexp.matcher(mobile).matches();
        }
        return false;
    }
3.2、中国联通手机号码校验

判断手机号码是否属于中国联通

    
    public static boolean checkChinaUnicom(String mobile) {
        if (StringUtils.isNotBlank(mobile)) {
            Pattern regexp = Pattern.compile(CHINA_UNICOM_PATTERN);
            return regexp.matcher(mobile).matches();
        }
        return false;
    }
3.3、中国电信手机号码校验

判断手机号码是否属于中国电信

    
    public static boolean checkChinaTelecom(String mobile) {
        if (StringUtils.isNotBlank(mobile)) {
            Pattern regexp = Pattern.compile(CHINA_TELECOM_PATTERN);
            return regexp.matcher(mobile).matches();
        }
        return false;
    }
3.4、中国大陆手机号码校验

判断手机号码是否属于中国大陆四家运营商或虚拟运营商的手机号码

    
    public static boolean checkChineseMobile(String mobile) {
        Pattern regexp = Pattern.compile(CHINA_PATTERN);
        return regexp.matcher(mobile).matches();
    }
4、获取手机号码属于运营商

传入手机号码,返回手机所属的运营商。

    
    public static String checkMobileBelong(String mobile) {
        if (!checkChineseMobile(mobile))
            return null;
        if (checkChinaMobile(mobile))
            return CHINA_MOBILE_NAME;
        if (checkChinaUnicom(mobile))
            return CHINA_UNICOM_NAME;
        if (checkChinaTelecom(mobile))
            return CHINA_TELECOM_NAME;
        return null;
    }
5、工具类代码集合

工具类代码集合如下,可以拷贝到idea中直接使用。

import java.util.regex.Pattern;


public class MobileUtils {
    
    private static final String CHINA_MOBILE_PATTERN = "(?:^(?:\+86)?1(?:34[0-8]|3[5-9]|4[78]|5[0-27-9]|7[28]|8[2-478]|9[578])\d{8}$)|(?:^(?:\+86)?1440\d{7}$)|(?:^(?:\+86)?170[356]\d{7}$)";

    
    private static final String CHINA_UNICOM_PATTERN = "(?:^(?:\+86)?1(?:3[0-2]|4[056]|5[56]|66|7[156]|8[56]|96)\d{8}$)|(?:^(?:\+86)?170[47-9]\d{7}$)";

    
    private static final String CHINA_TELECOM_PATTERN = "(?:^(?:\+86)?1(?:33|49|53|7[37]|8[019]|9[0139])\d{8}$)|(?:^(?:\+86)?1349\d{7}$)|(?:^(?:\+86)?1410\d{7}$)|(?:^(?:\+86)?170[0-2]\d{7}$)";

    
    private static final String CHINA_PATTERN = "(?:^(?:\+86)?1(?:3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$)";

    private static final String CHINA_MOBILE_NAME = "中国移动";
    private static final String CHINA_UNICOM_NAME = "中国联通";
    private static final String CHINA_TELECOM_NAME = "中国电信";

    
    public static boolean checkChineseMobile(String mobile) {
        Pattern regexp = Pattern.compile(CHINA_PATTERN);
        return regexp.matcher(mobile).matches();
    }

    
    public static boolean checkChinaMobile(String mobile) {
        if (StringUtils.checkStr(mobile)) {
            Pattern regexp = Pattern.compile(CHINA_MOBILE_PATTERN);
            return regexp.matcher(mobile).matches();
        }
        return false;
    }

    
    public static boolean checkChinaUnicom(String mobile) {
        if (StringUtils.isNotBlank(mobile)) {
            Pattern regexp = Pattern.compile(CHINA_UNICOM_PATTERN);
            return regexp.matcher(mobile).matches();
        }
        return false;
    }

    
    public static boolean checkChinaTelecom(String mobile) {
        if (StringUtils.isNotBlank(mobile)) {
            Pattern regexp = Pattern.compile(CHINA_TELECOM_PATTERN);
            return regexp.matcher(mobile).matches();
        }
        return false;
    }

    
    public static String checkMobileBelong(String mobile) {
        if (!checkChineseMobile(mobile))
            return null;
        if (checkChinaMobile(mobile))
            return CHINA_MOBILE_NAME;
        if (checkChinaUnicom(mobile))
            return CHINA_UNICOM_NAME;
        if (checkChinaTelecom(mobile))
            return CHINA_TELECOM_NAME;
        return null;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998774.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号