看了很多大神的解释,终于明白一点,结合大神们的讲解,写下自己的理解:
首先 是使用正则表达式;
正则表达式(regular expression)是一个描述字符模式的对象。使用JavaScript正则表达式可以进行强大的模式匹配和文本检索与替换功能。
手机号码正则表达式验证。
function checkPhone(){
var phone = document.getElementById('phone').value;
if(!(/^1[34578]\d{9}$/.test(phone))){
alert("手机号码有误,请重填");
return false;
}
}
或者
function checkPhone(){
var phone = document.getElementById('phone').value;
if(!(/^1(3|4|5|7|8)\d{9}$/.test(phone))){
alert("手机号码有误,请重填");
return false;
}
}
“ 小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个”
下面简单的解释一下:·
^1(3|4|5|7|8)\d{9}$
表示以1开头,第二位可能是3/4/5/7/8等的任意一个,在加上后面的\d表示数字[0-9]的9位,总共加起来11位结束。
从以上我们可以看到第一位是【1】开头,第二位则则有【3,4,5,7,8】,第三位则是【0-9】,第三位之后则是数字【0-9】。从而我们可以得出一个符合当前的手机号码验证正则表达式。
var reg = /^1(3|4|5|7|8)[0-9]{9}$/; //验证规则
var phoneNum = '15507621999';//手机号码
var flag = reg.test(phoneNum); //true
其中 \d 和 [0-9] 完全一样;
可以不验证第二位规则
var reg = /^1[0-9]{10}$/;
手机和固话同时验证方法
window.Parsley.addValidator('mphone', {
//var _reg =
validateString: function(value) {
$phone=(/^1[0-9]{10}$/.test(value));
$tel=(/^0\d{2,3}-?\d{7,8}$/.test(value));
if($phone==true || $tel==true) {
return true;
}else{
return false;
}
},
messages: {
en: '请输入正确手机号'
}
});
参考 http://caibaojian.com/regexp-example.html