手机号码号码正则

  • 相关资料

  • 附件 json文件

    [
        {
            "number": 13912345678,
            "des": "手机号码"
        },
        {
            "number": 14012345678,
            "des": "联通物联网网号"
        },
        {
            "number": 14112345678,
            "des": "电信物联网网号"
        },
        {
            "number": 14212345678,
            "des": "物联网网号"
        }
    ]
  • 示例代码

    var fs = require('fs');
    var fsObj = fs.readFileSync('./telPhoneNumber.json');
    var phoneNumberObjs = JSON.parse(fsObj);
    for (const index in phoneNumberObjs) {
      if (phoneNumberObjs.hasOwnProperty(index)) {
          const element = phoneNumberObjs[index];
          // console.log(index,element.number,":",strictTelPhoneNumber(element.number)?"手机号码":"未知","==",element.des);
          console.log(index,element.number,":",looseTelPhoneNumber(element.number)?"手机号码":"未知","==",element.des);
      }
    }
    /**
     * 
     * 严格校验,这个正则表达式不建议使用,因为变化的太快,说不定过几天就变了
     * @param {String} phoneNumberStr 电话号码
     * @return {Boolean} 是否正确
     */
    function strictTelPhoneNumber(phoneNumberStr){
    //    var regex = /^13(4[^9]\d{7}|[^4]\d{8})$/;
    //    var regex = /^14[5-9]\d{8}$/;//14[]
    //    var regex = /^16([^0389]|([2567]\d{8})|(1(0[^12]\d{6}|\d{7}))|(4[^89]\d{7}))$/;//16[]
    //    var regex = /^17[^49]\d{8}$/;//17[]
    //    var regex = /^19([^067]|([123589]\d{8})|(4[^1-5]\d{7}))$/;
        var fullRegex = /^(13(4[^9]\d{7}|[^4]\d{8}))|((15|18)\d{9})|(14[5-9]\d{8})|(16([^0389]|([2567]\d{8})|(1(0[^12]\d{6}|\d{7}))|(4[^89]\d{7})))|(17[^49]\d{8})|(19([^067]|([123589]\d{8})|(4[^1-5]\d{7})))$/;
        return fullRegex.test(phoneNumberStr);
    }
    
    /**
     * 
     * 推荐使用该正则来判断手机号码,可以通过与示例中的json文件进行结果比较
     * @param {String} phoneNumberStr 
     * @return {Boolean} 是否正确
     */
    function looseTelPhoneNumber(phoneNumberStr){
        var regex = /^1(3|5|8|9)\d{9}|4[5-9]\d{8}|6[^0389]\d{8}|7[0-8]\d{8}$/;
        return regex.test(phoneNumberStr);
    }
  • 规定
    • 13号段
      • 表达式:^13(4[^9]\d{7}|[^4]\d{8})$
      • 1349是卫星移动通信业务专用号段
    • 14号段
      • 表达式:^14[5-9]d{8}$
      • 140XX 13位 中国联通物联网网号
      • 141XX 13位 中国电信物联网网号
      • 142XX~143XX 13位 物联网网号
      • 144XX 13位 中国移动物联网网号
    • 15号段
      • 表达式:^15\d{8}$
    • 16号段
      • 表达式:^16([^0389]|([2567]\d{8})|(1(0[^12]\d{6}|\d{7}))|(4[^89]\d{7}))$
      • 160 省内人工信息服务台接入码
      • 161~162 16101和16102原用于中国电信和中国联通分组交换数据网CHINAPAC 同步/异步拨号入网接入码,现将业务调整,调整时限为 2018 年底前
      • 163XX 互联网类业务接入码
      • 164~167 1648 和1649 原用于 ATM 网网号和帧中继网网号 不予匹配
      • 168XX 电话信息服务业务接入码 不予匹配
      • 169XX 互联网类业务接入码 不予匹配
    • 17号段
      • 表达式:^17\[^49\]\d{8)$
      • 170、171 是移动通信转售业务专用号段
      • 174 是卫星移动通信业务专用号段
      • 179XX IP 电话业务接入码
    • 18号段
      • 表达式:^18\d{8}$
    • 19号段
      • 表达式:^19([^067]|([123589]\d{8})|(4[^1-5]\d{7}))$
      • 190、196 和 197 原用于中国电信、中国联通和中国移动的运营商标识码以及智能网电话卡业务,现要求对标识码进行调整,分别调整为1241(中国电信)、1243(中国联通)、1242(中国移动),调整时限为 2017 年底前;卡类业务逐步清退,清退时限为2018年底前。
      • 194(1~5)原用于中国电信和联通帧中继和 ATM 网网号,现进行业务调整,调整时限为2018年底前

猜你喜欢

转载自www.cnblogs.com/Doule/p/9390783.html