javascript验证电话号码

时间:2015-12-30 08:00:10

标签: javascript jquery html

好吧,我的脚本有什么问题,JShint正在抛出三行红色代码,说我的变量和if / else语句都有问题。我正在尝试验证电话号码是否为有效的美国电话格式

    $( "#phone" ).focusout(function telephone() {
    if( this.value === "" || this.value === null ) {
        $( "#error_messages" ).text("");
        return false;
    } else {
        var re = \d{3}[\-]\d{3}[\-]\d{4};
        if(re.test(document.getElementById("phone").value)) {
            $( "#error_messages" ).text("");
            return true;
        } else {
            $( "#error_messages" ).text("Phone Number* not a valid format xxx-xxx-xxxx");
            return false;
        }
    }
});

3 个答案:

答案 0 :(得分:0)

首先,您不需要关闭函数的名称。其次,你没有用/..../包含正则表达式。

var re = /\d{3}[\-]\d{3}[\-]\d{4}/;

答案 1 :(得分:0)

你应该试试这个。

$(function(){
  $("#phone").change(function telephone() {      
      if (this.value === "" || this.value === null) {
        $("#error_messages").text("");
        return false;
      } else {        
        if (/\d{3}[\-]\d{3}[\-]\d{4}/.test($(this).val())) {
            $("#error_messages").text("");
            return true;
          } else {
            $("#error_messages").text("Phone Number* not a valid format xxx-xxx-xxxx");
            return false;
          }
        }
      });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<input type="text" id="phone" />
<span id="error_messages"></span>

答案 2 :(得分:0)

这是在http://tools.netshiftmedia.com/regexlibrary/#上测试数字的表达式。将其更改为JS代码中的/^\d{3}[\-]\d{3}[\-]\d{4}$/,并在/..../中的正则代码中应用该工具

我申请了

^\d{3}[\-]\d{3}[\-]\d{4}$

您的号码没问题: enter image description here