在JavaScript

时间:2015-10-25 10:44:20

标签: javascript string string-comparison comparison-operators

我想比较用户使用提示符引入的两个字符串。

如果我这样做 (bar ==" yes" || bar ==" no")

它可以正常工作,但如果我使用!==

(bar!==" yes" || bar!==" no")

程序总是返回

提醒("第二个值必须是\'是\'或\'没有'");

即使我将是或否作为第二个值引入。

do{
    var values = window.prompt("Introduce a title, and \'yes\' o \'no\' separted with a comma.");
    var longValues = values.length;
    var comma = values.indexOf(",");
    var title = values.substr(0,comma);
    var bar = values.substr(comma+1,longValues);
    var longTitle = title.length;

  if (longTitle <3 || longTitle >30){
     alert("The title must be greater than 3 characters and less than 30 characters");
 }
 else if (bar !== "yes" || bar !== "no"){
    alert("The second value must be \'yes\' or \'no\'");
}
 else{
     alert("Correct!");
 }
}while((longTitle <3 || longTitle >30) && (bar !=="yes" || bar !=="no"))

1 个答案:

答案 0 :(得分:3)

您的病情需要是AND而不是OR。变化

if (bar !== "yes" || bar !== "no")

if (bar !== "yes" && bar !== "no")

如果您使用OR,则在bar不等于yesbar不等于no时,您会询问代码。如果bar的值为yes,则第一个条件为false,但第二个条件为true,因此结果为true。如果barno,则同样有效 - 在这种情况下,第一个条件为true,第二个条件为false,因此结果也为true。< / p>

您想要的是在bar不是yes时以及bar不是no时执行代码。