使用多个 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))