好吧,我的脚本有什么问题,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;
}
}
});
答案 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}$