为了解决正则验证匹配不上的问题
原来的代码,可以验证非空,也可以验证不合法的情况,就是不能验证合法的情况,如下图
代码
function vailPhone(){
var phone = jQuery("#phone").val();
var flag = false;
var message = "";
var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1})) \d{8})$/;
if(phone == ''){
message = "手机号码不能为空!";
}else if(phone.length !=11){
message = "请输入有效的手机号码!";
}else if(!myreg.test(phone)){
message = "请输入有效的手机号码!";
}else if(checkPhoneIsExist()){
message = "该手机号码已经被绑定!";
}else{
flag = true;
}
if(!flag){
//提示错误效果
}else{
//提示正确效果
}
return flag;
}
原因:myreg.test(phone)验证时返回值一直都是false,不知道是为嘛,即使换了正则表达式,依然如此,所以最后放弃这种方式了。
改版后的代码
$("#dMobile").blur(function(){
// 验证手机号是否合法
console.log("手机失焦")
var phone = $("#dMobile").val();
var message = "";
if(phone == ''){
message = "手机号码不能为空!";
$("#phone_error").html(message);
phone_flag = false;
// async:false;
}else if(!/^1[35789]\d{9}$/.test(phone)){
console.log(phone)
message = "请输入有效的手机号码!";
phone_flag = false;
$("#phone_error").html(message);
}else {
message = "";
$("#phone_error").html(message);
phone_flag = true;
}
});
改良后的代码,可以验证非空,也可以验证不合法的情况,也能验证合法的情况