我正在检查变量是否与以下任何字符串匹配:
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))