繁体   English   中英

电话号码正则表达式

[英]Phone number regex

我想检查正则表达式,如果它不匹配警报“无效”,但我的问题是正则表达式不起作用

$("#SendPhone").click(function() {
  var phonePattern = /(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}/;
  if ($("#PhoneField").val() == '' || !$("#PhoneField").match(phonePattern) == false) {
    alert("it is invalid")
  }
}

我在纯 javascript 中使用此代码工作,但在 jquery 中不起作用

这是整个 jquery 代码片段:

  <script>
  $(document).ready(function() {
      $("#SendPhone").click(function() {
          var phonePattern = /(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}/;
          if ($("#PhoneField").val() == '') {
              alert("it is invalid")
          }


          var phoneField = $("#PhoneField").val();
          $.ajax({
              type:'post',
              url:'insert.php',
              data:{'phoneField':phoneField},
              success:(function (response) {
              })
          })
          $.ajax({
              type:'post',
              url:'show.php',
              data:{},
              success:(function (response) {
                  $("#CodeField").val(response);
              })
          })
      });
  });

如果您确定您的正则表达式是正确的,那么您需要按如下方式更改您的代码( match字符串方法不返回布尔值,它是带有匹配项的数组或null ):

$("#SendPhone").click(function() {
    var phonePattern = /(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}/;
    if ($("#PhoneField").val() == '' || !$("#PhoneField").match(phonePattern)) {
        alert("it is invalid");
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM