前言:在做活动中,用户会中奖到话费和流量的奖项,有些用户为虚拟号码,话费和流量都不能给用户冲上。(最后处理结果,前台判断虚拟号段不能参与活动)
心疼 170和171的机主3秒钟
嗒
1秒
嗒嗒嗒
3秒
中国通信运营商有:移动、联通、电信
中国移动:134(不含1349)、135、136、137、138、139、147、148、150、151、152、157、158、 159、182、183、184、187、188、178、198
中国联通:130、131、132、140(物联网)145(上网卡)、146、155、156、166、185、186、175、176
中国电信:133、1349(卫星通信)、149、153、180、181、189、177、173、174、199
4G号段:176/175(联通)、173/177(电信)、178(移动)
虚拟运营商:170[1700/1701/1702(电信)、1703/1705/1706(移动)、1704/1707/1708/1709(联通)]、171(联通)
未知号段:141、142、143、144、154 没有去做判断处理
以上资料整理号码有所欠缺,技术老大说,171号段只有[1718、1719]号段为虚拟号段
我国使用的手机号码为11位数字,我们的手机号可以分为三段,都有不同的编码含义:++前3位是网络识别号++、++4-7位是地区编码(HLR归属位置寄存器)++、++8-11位是用户号码(随机分配)。++
最新整理(代码整理)
//移动号段
var $CMCC = ['134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '158', '159', '182', '183', '184', '187', '188', '147', '178','143','141', '148', '198'];
//联通号段
var $CUCC = ['130', '131', '132', '155', '156', '185', '186', '145', '176', '175','171', '146', '166'];
//电信号段
var $CTCC = ['133', '153', '180', '181', '189', '177','173', '174', '199'];
虚拟号段(判断是哪个运营商)
//移动虚拟运营商
var $MVNOM = ['1705','1703','1706'];
//联通虚拟运营商
var $MVNOU = ['1704','1707', '1708', '1709', '1718', '1719'];
//电信虚拟运营商
var $MVNOT = ['1700', '1701','1702'];
/**
* 判断手机号是否能参与活动 虚拟号段不能参与活动【 170, 171[8,9] 】
* @param {[type]} phone 用户输入的手机号
* @return {[type]} 验证通过返回true,验证未通过返回错误信息
*/
var testPhone = new Object();
testPhone.info = "";
testPhone.action = function (telephone) {
var phone = /^(((13[0-9]{1})|(14[1356789]{1})|(15[012356789]{1})|(166)|(17[01345678]{1})|(18[0-9]{1})|(19[89]{1}))+\d{8})$/;
var mvno = /^(((170[0123456789]{1})|(171[89]{1})))+\d{7}$/; //虚拟号段
if (phone.test(telephone)) { //验证手机号是否正确
if (mvno.test(telephone)) { //验证号码是否为虚拟号
testPhone.info = '虚拟号';
return false;
}
return true;
}
//手机号输入错误
testPhone.info = '手机号输入错误';
return false;
}
//调用
if(testPhone.action(val)){ // 验证通过
alert('验证通过')
}else { // 验证未通过
alert(testPhone.info)
}
下面是PHP判断为哪个运营商
/**
* 获得手机运营商
* @param string $phone 手机号
* @return string CMCC移动; CUCC联通; CTCC电信; NONO不存在的运营商
*/
protected function _getPhoneOperator($phone)
{
$topThree = substr($phone, 0, 3);
$topFour = substr($phone, 0, 4);
$CMCC = array('134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '158', '159', '182', '183', '184', '187', '188', '147', '178');
$CUCC = array('130', '131', '132', '155', '156', '185', '186', '145', '176');
$CTCC = array('133', '153', '180', '181', '189', '177');
//移动虚拟运营商
$MVNOM = array('1705');
//联通虚拟运营商
$MVNOU = array('1707', '1708', '1709', '1718', '1719');
//电信虚拟运营商
$MVNOT = array('1700', '1701');
if (in_array($topThree, $CMCC) || in_array($topFour, $MVNOM)) {
return 'CMCC';
} else if (in_array($topThree, $CUCC) || in_array($topFour, $MVNOU)) {
return 'CUCC';
} else if (in_array($topThree, $CTCC) || in_array($topFour, $MVNOT)) {
return 'CTCC';
} else {
return 'NONO';
}
}
内容如有问题,请邮件联系我