作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 javascript 中创建一个 if 语句,如果变量不等于几个不同的事物之一,它将执行某些操作。我一直在尝试 OR 运算符的许多不同变体,但我无法让它工作。
if(var != "One" || "Two" || "Three"){
// Do Something
}
有什么想法吗?谢谢!
更新:
我以前尝试过这个:
if(var != "One" || var != "Two" || var != "Three"){
// Do Something
}
由于某种原因它不起作用。我的变量正在从 DOM 中提取信息,我不知道这是否会影响这一点。
实际代码
// Gets Value of the Field (Drop Down box)
var itemtype = document.forms[0].elements['itemtype' + i];
if(itemtype.value != "Silverware" || itemtype.value != "Gold Coins" || itemtype.value != "Silver Coins"){
// Do Something
}
最佳答案
你的表达永远正确,你需要:
if(!(myVar == "One" || myVar == "Two" || myVar == "Three")) {
// myVar is not One, Two or Three
}
或者:
if ((myVar != "One") && (myVar != "Two") && (myVar != "Three")) {
// myVar is not One, Two or Three
}
并且,简单来说:
if (!/One|Two|Three/.test(myVar)) {
// myVar is not One, Two or Three
}
// Or:
if (!myVar.match("One|Two|Three")) {
// ...
}
更多信息:
编辑:如果您采用最后一种方法,由于您发布的代码似乎是循环的一部分,我建议您在外部创建正则表达式循环,并使用RegExp.prototype.test
方法而不是 String.prototype.match
,您也可能想关心单词边界,即“noOne”将在没有它们的情况下匹配“One”...
关于Javascript OR 在 IF 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2011213/
我是一名优秀的程序员,十分优秀!