仅接受提示框中的字母

时间:2017-10-23 13:45:31

标签: javascript

我试图验证名称提示框以仅允许字母并确保其中放置了某些内容。那里必须有一个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");
    }
}




3 个答案:

答案 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");
  }
}

Here is a working example

答案 2 :(得分:-1)

看起来像一个错字

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

应该是

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

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