在 JavaScript 中用 !== 比较字符串

Compare strings with !== in JavaScript

我想通过提示比较用户输入的两个字符串。

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

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

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

程序return总是

警报("The second value must be \'yes\' or \'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"))

您的条件必须是 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

您想要的是在 bar 不是 yes 以及 bar 不是 no.

时执行代码