2015-12-30 328 views
-1

好吧,我的脚本有什么问题,JShint正在抛出三行红色代码,说我在我的变量和我的if/else语句中有问题。我想验证如果电话号码是一个有效的美国电话格式javascript验证电话号码

$("#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

正则表达式需要/'。将其更改为'/ \ d {3} [\ - ] \ d {3} [\ - ] \ d {4} /' – Rajesh

+0

这些错误是什么? –

+0

因为你在同一个元素上绑定焦点并且使用jquery作为're.test(document.getElementById(“phone”).value)''到're.test($(this).val())'好。 –

回答

0

首先,你不需要为闭合功能的名称。其次,你没有附上/..../的正则表达式。

var re = /\d{3}[\-]\d{3}[\-]\d{4}/; 
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>

0

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

我申请

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

这是确定你的号码: enter image description here

`/正则表达式中被定义