解决正则验证匹配不上的问题

为了解决正则验证匹配不上的问题

原来的代码,可以验证非空,也可以验证不合法的情况,就是不能验证合法的情况,如下图
解决正则验证匹配不上的问题_第1张图片
代码

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;
          }
          
 });

改良后的代码,可以验证非空,也可以验证不合法的情况,也能验证合法的情况

你可能感兴趣的:(解决正则验证匹配不上的问题)