js电话号码验证


以下为项目中优化后

/**
 * 固定电话或手机号码验证
 * 2013-07-04 09:34 查询到的手机号码号段
 * 电信手机号码号段: 133、153、180、181、189
 * 联通手机号码号段 :130、131、132、145(无线上网卡专用号段)、155、156、185、186
 * 移动手机号码号段 :134、135、136、137、138、139、147、150、151、152、157、158、159、182、183、184、187、188
 */
function testTelOrMobile(C_LXDH){
	if(C_LXDH.length == 11){//手机
		//var mobile = /^1[3|5|8]\d{9}$/ ;
		var mobile = /^(?:13\d|15[012356789]|14[7]|18\d)-?\d{5}(\d{3}|\*{3})$/;
		if(mobile.test(C_LXDH)){
			return true;
		}else{			
			return false;
		}
	}else{//固话
		//var phone = /^0\d{2,3}-?\d{7,8}$/;
		
		//"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"
	    //return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
	    //return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
		var tel = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
		if(tel.test(C_LXDH)){
			return true;
		}else{
			return false;
		}
	}
}

调用

 if(testTelOrMobile(sLXDH)){
	$("C_XZQH").focus();
 }else{
	showDialog("warning", "", "请输入正确的手机号码或电话号码\n\n例如:13916752109或023-3614072!");
	$("C_LXDH").focus();
 }



==========================以下為其他人提供的=============================================

一、

<script type="text/javascript">
function checkTel(tel)
{
   var mobile = /^1[3|5|8]\d{9}$/ , phone = /^0\d{2,3}-?\d{7,8}$/;
   return mobile.test(tel) || phone.test(tel);
}
alert(checkTel('13590871234'));     //true
alert(checkTel('020-12345678'));    //true
alert(checkTel('1234'));            //false
</script>

二、

//去空格
String.prototype.Trim = function() { 
var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/); 
return (m == null) ? "" : m[1]; 
}

//验证手机号
String.prototype.isMobile = function() { 
return (/^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/.test(this.Trim())); 
}

//验证电话
String.prototype.isTel = function()
{
    //"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"
    //return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
    return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
}

       if (form.tel.val.isMobile()||form.tel.val.isTel()) { 
            form.tel.val = form.tel.val.Trim(); 
            alert("您的电话/手机号码是:" + form.tel.val);
            return tr; 
        } 
        else { 
            alert("请输入正确的手机号码或电话号码\n\n例如:13916752109或0712-3614072"); 
            tel.focus();
            return false;        
        } 

==================正则表达式理解========================
return (/^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/.test(this.Trim()));

var Mobile = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}|15[0-9]\d{8}$/

正则表达式部分:
\d 代表一个数字
{7,8} 代表7-8位数字(表示电话号码)
{3,} 代表分机号码
d{2,3} 代表区号
\+]\d{2,3} 代表国际区号
^13\d{5,9}$/ //130–139。至少5位,最多9位
/^153\d{4,8}$/ //联通153。至少4位,最多8位
/^159\d{4,8}$/ //移动159。至少4位,最多8位




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值