js 验证手机号合法性程序代码
来源:自学PHP网
时间:2014-09-19 14:47 作者:
阅读:次
[导读] 我们知道手机号码验证,验证13系列和150-159(154除外)、180、185、186、187、188、189几种号码,长度11位当然移动与联通还在不停的增加手机号段了,大家可自动增加。...
手机号验证的正则为:
代码如下 |
复制代码 |
var reg =/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/;
var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
|
还有一种写法
代码如下 |
复制代码 |
var regex = {
mobile: /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/
}
|
表达式分析:
“/”代表一个正则表达式。
“^”代表字符串的开始位置,“$”代表字符串的结束位置。
“?”代表匹配前面的字符一个或零个,所以这里0?的意思是手机号码可以以0开头或不以0开头。
接下的部分验证11位的手机号码,先从13开始,因为从130-139都有所以可选区间是[0-9],15开头的号码没有154所以[]里面没有4这个数字,当然也可以写成[0-35-9],下面18和14开的号码同上。
小括号括起来的代表一个子表达式,里面是4个可选分支分别用“|”来区分开来,在正则中“|”的优先级是最低的,这里每个分支匹配的都是3个字符(一个[]只能匹配一个字符,里面是可选的意思),也就是手机号码的前3位数字,那么后面还有8位数字需要匹配,可以是0-9的任意字符,所以是“[0-9]{8}”,{}中的数字代表匹配前面字符的个数。分析完毕。
例1
代码如下 |
复制代码 |
function isMobel(value)
{
if(/^13d{9}$/g.test(value)||(/^15[0-35-9]d{8}$/g.test(value))|| (/^18[05-9]d{8}$/g.test(value)))
{ return true; }
else
{ return false; }
}
|
例2
代码如下 |
复制代码 |
function CheckChinaMobileID(mobile){
if (mobile==""){
alert("请填写手机号码!");
return false;
}
if(isNaN(mobile)||(mobile.length!=11)){
alert("手机号码为11位数字!请正确填写!");
return false;
}
var reg =/^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
if(!reg.test(mobile))
{
alert("您的手机号码不是移动号码,请重新输入");
return false;
}
alert("大爷,这个真是移动的手机号");
return true;
}
function CheckIsMobile(mobile){
if (mobile==""){
alert("请填写手机号码!");
return false;
}
if(isNaN(mobile)||(mobile.length!=11)){
alert("手机号码为11位数字!请正确填写!");
return false;
}
var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
if(!reg.test(mobile))
{
alert("您的手机号码不正确,请重新输入");
return false;
}
alert("大爷,这个真是手机号,是哪的我不知道");
return true;
}
|
另一个正则手机号方法
代码如下 |
复制代码 |
<script type="text/javascript">
function enterEvent(){
key=window.event.keyCode;
if(key==0xD){//判断是否按下回车键
mobile_click();
}
}
function CM(m){
if(m.length > 11){
return false;
}else{
var t=/^(13d{9})|(15d{9})|(18d{9})|(0d{10,11})$/;
return t.test(m);
}
}
window.onload=function(){
var c=document.getElementById("mb");
c.focus();
}
function mobile_click(){
var c=document.getElementById("mb");
if(!CM(c.value)){
alert("请输入一个正确的手机号码。");
c.select();
}else{
document.getElementById("inputcall").style.display="none";
document.getElementById("show").style.display="block";
document.getElementById("iframeDiv").style.display="block";
}
}
</script>
|
|