使用多个 OR 运算符编写 if 条件的最优雅方法是什么?
What is the most elegant way to write an if condition with multiple OR operators?
我正在检查变量是否与以下任何字符串匹配:
if (re == "Neliöhinta"||re == "Yhtiövastike"||re == "Vesimaksu"||re == "Hoitovastike"||re == "Rahoitusvastike") {
//do something
}
我在想,有没有更elegant/shorter的方法来写这个if条件?类似于
if(re == ("Neliöhinta"||"Yhtiövastike"||"Vesimaksu"||"Hoitovastike"||"Rahoitusvastike"))
(这不起作用)
到目前为止我发现的最好的是
if(/Neliöhinta|Yhtiövastike|Vesimaksu|Hoitovastike|Rahoitusvastike/g.test(field))
还有其他方法吗?
干杯
您可以改用数组:
const permittedWords = ["Neliöhinta", "Yhtiövastike", "Vesimaksu", "Hoitovastike", "Rahoitusvastike"];
if (permittedWords.includes(re)) {
// do something
}
您当前的技术不会完美工作,因为它还会匹配 包含 单词但不完全匹配的字符串,例如 aaaaNeliöhinta
。要修复正则表达式,请使用 ^
和 $
将其锚定到字符串的开头和结尾,并删除全局标志:
if(/^(?:Neliöhinta|Yhtiövastike|Vesimaksu|Hoitovastike|Rahoitusvastike)$/.test(field))
我正在检查变量是否与以下任何字符串匹配:
if (re == "Neliöhinta"||re == "Yhtiövastike"||re == "Vesimaksu"||re == "Hoitovastike"||re == "Rahoitusvastike") {
//do something
}
我在想,有没有更elegant/shorter的方法来写这个if条件?类似于
if(re == ("Neliöhinta"||"Yhtiövastike"||"Vesimaksu"||"Hoitovastike"||"Rahoitusvastike"))
(这不起作用)
到目前为止我发现的最好的是
if(/Neliöhinta|Yhtiövastike|Vesimaksu|Hoitovastike|Rahoitusvastike/g.test(field))
还有其他方法吗? 干杯
您可以改用数组:
const permittedWords = ["Neliöhinta", "Yhtiövastike", "Vesimaksu", "Hoitovastike", "Rahoitusvastike"];
if (permittedWords.includes(re)) {
// do something
}
您当前的技术不会完美工作,因为它还会匹配 包含 单词但不完全匹配的字符串,例如 aaaaNeliöhinta
。要修复正则表达式,请使用 ^
和 $
将其锚定到字符串的开头和结尾,并删除全局标志:
if(/^(?:Neliöhinta|Yhtiövastike|Vesimaksu|Hoitovastike|Rahoitusvastike)$/.test(field))