目前手机号码运营商正则判断功能

1、目前运营商增加了好多虚拟号段,在网上汇总了一下号段的规则,在此做下整理.

170号段前4位可以用来区分与虚拟运营商合作的基础运营,电信是1700;联通是1709;移动是1705。


工信部再向中国联通核发了9000万码号资源,用以支持虚拟运营商开展业务。在此次核发新码号资源后,

中国联通已经拥有1704、1707、1708、1709,1710、1711、1712、1713、1714、1715、1716、1717、1718、1719共14个千万级号段,并且171整个亿级号段都已归属联通。

中国电信目前虚拟运营商号段为:1700、1701、1702共3个千万级号段,累计3000万号码资源;

中国移动目前虚拟运营商号段为:1703、1705、1706共3个千万级号段,累计3000万号码资源。

至此,中国联通总共拥有了1.4亿号码资源,成为三大运营商中拥有虚拟运营商业务号码最多的一家。 

知道了虚拟号段规则就OK了下面给出正则匹配规则

  var isChinaMobile = "^134[0-8]\\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\\d{7,8}$"; //移动
var isChinaUniom = "^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\\d{7,8}|$"; //联通

  var isChinaTelcom = "^(?:133|153|1700|1701|1702|177|173|18[019])\\d{7,8}$";//电信

规则是这样,js中使用就不写了,写下C#的匹配,需要的直接拿走就可以用

public  string GetRegex(string input)
        {
            var isChinaMobile = "^134[0-8]\\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\\d{7,8}$"; //移动
            var isChinaUnion = "^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\\d{7,8}$"; //联通
            var isChinaTelcom = "^(?:133|153|1700|1701|1702|177|173|18[019])\\d{7,8}$"; // 电信      
            Regex regex = new Regex(isChinaMobile);
            if (regex.IsMatch(input))
            {
                return "移动";
            }
            regex = new Regex(isChinaUnion);
            if (regex.IsMatch(input))
            {
                return "联通";
            }
            regex = new Regex(isChinaTelcom);
            if (regex.IsMatch(input))
            {
                return "电信";
            }
            var result = DealFictitiousNo(input);
            return result;
        }
好了记录完了,下次有新号段可以直接更新下就好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值