不确定为什么我的正则表达式验证不起作用...如果我输入一个数字,它仍然说它是一个无效数字......为什么?我正在尝试检查无效数字,但如果我输入数字,我也会收到错误。
function validatePhone() {
var phone = document.getElementById("phone1").value;
if (phone.length === 0) {
console.log("phone number is required.");
producePrompt("Phone number is required.", "messagePrompt", "red");
return false;
}
if (!phone.match(/^[0-9]{10}$/)) {
producePrompt("Please enter a valid Phone number.", "messagePrompt", "red");
return false;
}
producePrompt("valid Number", "messagePrompt", "green");
return true;
}
function producePrompt(message, promptLocation, color) {
document.getElementById(promptLocation).innerHTML = message;
document.getElementById(promptLocation).style.color = color;
}
function remove_msg() {
producePrompt(" ", "messagePrompt", "red");
}

<form>
<p>Please enter your phone number below:</p>
<input type="tel" name="phone1" id="phone1" placeholder="(000)000-0000" onkeyup="validatePhone()" />
<label for="" id="messagePrompt"></label>
<br>
<input type="button" value="send message" onclick="validatePhone()" />
</form>
&#13;
答案 0 :(得分:1)
此正则表达式将为格式(###)###-####
^\([0-9]{3}\)[0-9]{3}\-[0-9]{4}$
但总的来说,限制用户使用这种非常具体的格式并不是一个好主意。我建议您接受多个版本的电话号码,绝对只包括没有其他字符的数字,如括号或连字符。