根据用户的输入手机号码判断该号的运营商是移动、联通、电信或其他,再根据不同的运营商做出相应的处理,下面介绍js中如何判断手机号的运营商的代码电话号码是电话管理部门为电话机设定的号码。一般7--8位数组成的(手机号码为11位),移动号码号段由三大移动营业商号段组成,具体如下:
1)中国移动号段包括:134、135、136、137、138、139、150、151、152、157、158、159、147、182、183、184、187、188、1705(其他)、178
2)中国联通号段包括:130、131、132、145(145属于联通无线上网卡号段)、155、156、185、186 、176、1709(其他)、176
3)中国电信号段包括:133 、153 、180 、181 、189、1700(其他) 、177
JS正则表达式判断手机号所属运营商,具体代码如下:
<script type="text/javascript"> var isChinaMobile = /^134[0-8]\\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|18[2-478])\\d{8}$/; //移动 var isChinaUnion = /^(?:13[0-2]|145|15[56]|176|18[56])\\d{8}$/; //联通 var isChinaTelcom = /^(?:133|153|177|18[019])\\d{8}$/; //1349号段 电信 var isOtherTelphone = /^170([059])\\d{7}$/;//其他运营商 var utils = { checkMobile: function(telphone){ telphone = telphone.trim(); if(telphone.length != 11){ return this.setReturnJson(false, '未检测到正确手机号码'); }else{ if(isChinaMobile.test(telphone)){ return this.setReturnJson(true, '移动', {name: 'ChinaMobile'}); }else if(isChinaUnion.test(telphone)){ return this.setReturnJson(true, '联通', {name: 'ChinaUnion'}); }else if(isChinaTelcom.test(telphone)){ return this.setReturnJson(true, '电信', {name: 'ChinaTelcom'}); }else if(isOtherTelphone.test(telphone)){ var num = isOtherTelphone.exec(telphone); return this.setReturnJson(true, '', {name: ''}); }else{ return this.setReturnJson(false, '未检测到正确手机号码'); } } }, setReturnJson: function(status, msg, data){ if(typeof status !== 'boolean' && typeof status !== 'number'){ status = false; } if(typeof msg !== 'string'){ msg = ''; } return { 'status': status, 'msg': msg, 'data': data }; } } </script>
Js调用,具体代码如下:
<script type="text/javascript"> var json = utils.checkMobile('xxxxxxxxx'); console.info(json); console.info(json.status); console.info(json.data); console.info(json.msg); </script>