用正则表达式验证联系电话(及区号)

翻了几篇博客,说下面的正则表达式是验证手机号和固话的

/^(13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9})$|(^(0\d{10})|^(0\d{2}-\d{8}))$/

自己便拿来验证了下
出现了一个小问题,手机号都没问题,11位数,而测试固话时出现了问题,固话因为区号的原因,会出现“—”符号的位置不一样,比如有的区号只有三位,而有的区号有四位数,导致后面

^(0\d{2}-\d{8})

有问题,写 2的话,验证4位数的区号不通过;写 3的话,验证3位数的区号不通过,目前原因还在找

正则表达式的介绍

附上一个demo

function Verify() {
	//   /^1[3456789]\d{9}$/	这个是验证手机号的
	var phone = $("#phone").val();
	if(!(/^(13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9})$|(^(0\d{10})|^(0\d{3}-\d{8}))$/.test(phone))){
		//可以换成项目的弹框,项目的弹框比这个好看
		alert("手机号码有误,请重填");
		$("#phone").val('');
		return false;
	}
}

你可能感兴趣的:(前端代码及框架)