Javascript 只接受提示框中的字母

Javascript 只接受提示框中的字母,javascript,Javascript,我正在尝试验证名称提示框,使其仅允许字母,并确保在其中放置了一些内容。其中必须有if和else语句。我不知道为什么它不起作用,但它只是贯穿其中,好像那里没有if语句 函数验证(){ var name=prompt(“请输入您的姓名”); var查询=提示(“请告诉我们您的查询。”) 如果(name=null | | name==“”){ 警告(“您必须在提示框中输入您的姓名!”); 验证() }否则如果(!/[a-zA-Z]/name.test(ch)){ 警告(“请仅输入字母”); 验证()

我正在尝试验证名称提示框,使其仅允许字母,并确保在其中放置了一些内容。其中必须有if和else语句。我不知道为什么它不起作用,但它只是贯穿其中,好像那里没有if语句

函数验证(){
var name=prompt(“请输入您的姓名”);
var查询=提示(“请告诉我们您的查询。”)
如果(name=null | | name==“”){
警告(“您必须在提示框中输入您的姓名!”);
验证()
}否则如果(!/[a-zA-Z]/name.test(ch)){
警告(“请仅输入字母”);
验证()
}否则{
警报(“您的查询已通过”);
}

}
问题在于名称=0

应为name==0

if (name == null || name ==""){
    alert("You must enter your name into the prompt box!");
        validate()
    }
看起来像是打字错误

if (name = null || name == "")
应该是

if (name == null || name == "")

您的版本(有趣的是)将name设置为
“true”
“false”
,因为它被解析为
name=(null | | name=”)

您的代码有三个问题

首先,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");
  }
}

.

=
是分配<代码>=< /代码>和<代码>==比较是什么样的混乱,请在请求帮助时适当地缩进代码:这些字符将无法通过您的检查。
/[a-zA-Z]/name.test(ch)
无效,应使用
/[a-zA-Z]/.test(名称)