编写具有多个 OR 运算符的 if 条件的最优雅方法是什么?



我正在检查变量是否与以下任何字符串匹配:

if (re == "Neliöhinta"||re == "Yhtiövastike"||re == "Vesimaksu"||re == "Hoitovastike"||re == "Rahoitusvastike") {
//do something
}

我想知道,如果有条件,有没有更优雅/更短的方式来写这个?类似的东西

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))

相关内容

  • 没有找到相关文章

最新更新