JavaScript-PHP JS如何判断手机号合法性

JavaScript-PHP JS如何判断手机号合法性

晚风撩人 发布于 2017-07-17 字数 89 浏览 1143 回复 8

请给出较全的正则表达式,比如电信号 移动号 网通号,如果能判断全球的手机号就更好了。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

浮生未歇 2017-11-12 8 楼

js:

function isMobile(vStr){   
  var vReg = /^1(3|4|5|8)d{9}$/;
  return vReg.test(vStr);
}

php:

function isMobile($str){
  return preg_match("/^1(3|4|5|8)d{9}$/",$str);
}
晚风撩人 2017-11-09 7 楼

//手机号
_mphone: function(v){

//return /^(((d{2,3}))|(d{3}-))?13d{9}$/.test(v) ;--验证13x
//return /^(?:13d|15[89])-?d{5}(d{3}|*{3})$/.test(v);--支持15[8/9]

return /^(?:13d|15d|18d)-?d{5}(d{3}|*{3})$/.test(v);

} ,
//座机号
_phone: function(v){
return /^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$/.test(v);
}

清晨说ぺ晚安 2017-10-30 6 楼

 function checkmobile(mobile)
{
var reg = /^(((13[0-9]{1})|159|(15[0-9]{1}))+d{8})$/ ;
if(!reg.test(mobile)){
return false;
}else{
return true;
}
}

夜无邪 2017-10-27 5 楼

/*cmcc-中国移动手机号码规则:134-139,147,150-152,157-159,182-183,187-188
cucc-中国联通手机号码规则:130-132,145,155-156,185-186
cnc--中国电信手机号码规则:133,153,180,189
号段信息更新于2012-09-07
*/
$cmcc="/^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$/";
$cucc="/^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$/";
$cnc ="/^[1]{1}[8]{1}[09]{1}[0-9]{8}$/";

浮生未歇 2017-10-22 4 楼

我也发一个我目前正在用的JavaScript的验证手机号的方法吧,几乎目前所有的手机号段都考虑到了。

/**
*手机号码验证,验证13系列和150-159(154除外)、180、182、185、186、187、188、189几种号码,长度11位
*@param string value 手机号码
*@return bool 
*/
function isMobel(value)  {  
if(/^13d{9}$/g.test(value)||(/^15[0-35-9]d{8}$/g.test(value))||(/^18[025-9]d{8}$/g.test(value))){    
return true;  
}else{
return false;  
}  
}
夜无邪 2017-10-02 3 楼

15 开头的也不都是手机号码,个人觉得应该采用配置号段方式解析:

因为发现联通和移动的有4位的号段,因此修改了判断代码,用长度做预判断,支持不同位数的号段。

function isMobile(str) {
if (str.toString().length != 11) return false;
var prefix = [130,131,1348,138,139,150,152];
var re = new RegExp("^(" + prefix.join("|") + ")\d+$");
return re.test(str);
}
alert(isMobile(130567890011));//false,号码位数不对
alert(isMobile(13056789001));//true,3位号段
alert(isMobile(13489908175));//true,4位号段
灵芸 2017-09-19 2 楼

看了大家的回答,既然js正则达不到要求,可以灵活应用一下,在管理后台添加一个管理页不就好了。

泛泛之交 2017-08-20 1 楼

其实基于上面大家的回答最终我估计都是不能满足的需求,
我这里有一个基于短信验证的方法,
可能代价比较大,
但是这样就不必为了搜集新号段而每次去修改正则了,
初步我的想法就是通过ajax给输出的号码通过第三方短信接口发送一条验证消息,
因为先前我在做短信接口的时候就发现它对号码的判断是很近准的,
当下请求就能返回号码发送的成功与否,
当然接收方确认就需要配合返回状态去判断了,
因为运营商会根据号码的是否存在与网络中去判断号码的真伪,
这样就避免了非法号码的录入,
当然这样就会增加不到一毛的成本费了...

仅供大家参考!!!