如題,大家是怎麼做的那?網路上找了很多,不知道為什麼不行
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 = this.trim(telphone);
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
};
}
}
ringa_lee2017-05-19 10:19:52
可以試試淘寶的API
https://tcc.taobao.com/cc/jso...這裡是手機號碼
例如:https://tcc.taobao.com/cc/jso...
返回格式:
_GetZoneResult = {
mts:'1820000',
province:'四川',
catName:'中国移动',
telString:'18200000000',
areaVid:'30508',
ispVid:'3236139',
carrier:'四川移动'
}
淡淡烟草味2017-05-19 10:19:52
不知是原創,還是抄自哪裡的,不能使用。
1,utils沒有trim()方法嗎,this.trim(xxx)會出錯。
2,三個正規判斷不正確,任何號碼都回傳false
PHPz2017-05-19 10:19:52
我們之前使用淘寶接口,但是請求量較大,有時候接口並不穩定。所以現在改用介面+搜尋引擎的方式。
隨機使用bing,360,百度搜尋引擎查詢。
直接請求搜尋引擎,然後從回應中分析想要的資料即可。
不僅能查詢運營商,還可以查詢歸屬地哦 ^_^