我试图验证名称提示框以仅允许字母并确保其中放置了某些内容。那里必须有一个if和else语句。我不确定为什么它不起作用,但它只是在那里运行,好像那里没有if语句。
function validate() {
var name = prompt("Please enter your name.");
var enquiry = prompt("Please tell us your enquiry.")
if (name = null || name == "") {
alert("You must enter your name into the prompt box!");
validate()
} else if (!/[a-zA-Z]/name.test(ch)) {
alert("Please only enter letters");
validate()
} else {
alert("Your enquiry has gone through");
}
}

答案 0 :(得分:0)
问题是名称= 0。
应该是name == 0
if (name == null || name ==""){
alert("You must enter your name into the prompt box!");
validate()
}
答案 1 :(得分:0)
您的代码存在三个问题。
首先,if语句包含赋值而不是比较。您应该将其更改为==
或===
:
if (name === null || name === "") {
注意:您应该研究==
和===
之间的区别,因为您会得到意想不到的结果。我建议你在这种情况下使用===
。
其次,你的正则表达式语法是错误的。它只是无效的。
第三,你的实际正则表达式不会做你需要的,因为它匹配的是任何字符是一个字母,而不是所有字符。你应该改变它。
if (!/^[a-zA-Z]+$/.test(name))
完整的工作代码:
function validate() {
var name = prompt("Please enter your name.");
var enquiry = prompt("Please tell us your enquiry.")
if (name == null || name == "") {
alert("You must enter your name into the prompt box!");
validate()
} else if (!/^[a-zA-Z]+$/.test(name)) {
alert("Please only enter letters");
validate()
} else {
alert("Your enquiry has gone through");
}
}
答案 2 :(得分:-1)
看起来像一个错字
if (name = null || name == "")
应该是
if (name == null || name == "")
您的版本(有趣的是)会将名称设置为"true"
或"false"
,因为它会被解析为name = (null || name == "")