我无法使用此正则表达式/^(?(\d{3}))?[..-/]?(\d{3})[.-/]?(\d {4})$/;前三位数字放在括号 (xxx) xxx-xxxx 中。我尝试使用 if/else 循环测试电话号码,但有些东西不起作用,我找不到我做错了什么。感谢您的帮助。
function validatePhone() {
var pNumber = document.getElementById("phoneprompt").value;
var regex = /^\(?(\d{3})\)?[\.\.-\/]?(\d{3})[\.\-\/ ]?(\d{4})$/;
if (regex.test(pNumber)) {
document.getElementById("phoneprompt").innerHTML = "<img src=\"greencheck.png\" />";
return (true);
} else {
document.getElementById("phoneprompt").innerHTML = "<img src=\"redcheck.png\" /> Phone numbers must be in (xxx) xxx-xxxx format";
return (false);
}
}
最佳答案
除了正则表达式的问题,你不能设置输入字段的 innerHTML,所以
function validatePhone() {
var el = document.getElementById("phoneprompt"),
pNumber = el.value,
regex = /^\(?(\d{3})\)?\s?[\.\.-\/]?(\d{3})[\.\-\/ ]?(\d{4})$/,
valid = regex.test(pNumber);
if (valid) {
document.getElementById("phonepromptmsg").innerHTML = "<img src=\"greencheck.png\" />";
} else {
document.getElementById("phonepromptmsg").innerHTML = "<img src=\"redcheck.png\" /> Phone numbers must be in (xxx) xxx-xxxx format";
}
return valid;
}
<input id="phoneprompt" onchange="validatePhone()" />
<span id="phonepromptmsg"></span>
<br />
<input type="button" onclick="validatePhone()" value="Test"/>
关于javascript - 这个验证函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339733/