检查字符串是否与其他字符串匹配(同一行中有多个条件)

时间:2019-04-05 10:14:00

标签: javascript

我正在使用以下逻辑检查特定字符串是否与其他字符串匹配

if (searchTxt == "All" || searchTxt == "WORD1" || searchTxt == 'WORD2' || searchTxt == 'WORD3' || searchTxt == 'WORD4' || searchTxt == 'WORD5') {
}

以上代码运行正常,但显示警告

  

减少表达式中使用的条件运算符(5)的数量   (最多允许3个)

如何解决此警告

2 个答案:

答案 0 :(得分:-1)

在此示例中,使用switch statement会更好。如果要对多个术语(例如“ WORD1”和“ WORD2”)执行相同的操作,请消除该中断并将您要执行的代码放在最后的匹配项中。

switch(searchTxt){
  case "All": 
    // do something
  case "WORD1": 
    // do something
  case "WORD2": 
    // do something
  case "WORD3": 
    // this switch case will do something for 
    // "WORD1", "WORD2", "WORD3", "All"
    break;
  case "WORD4":
    // do something
    break;
  case "WORD5":
    // do something
    break;
  default:
    // do something if no match
}

答案 1 :(得分:-2)

您的代码目前不需要重复。

如何将可接受的选项放入数组中,然后使用动态REGEX进行测试:

let allowed = ['foo', 'bar', 'etc'];
if (new RegExp('/^('+allowed.join('|')+')$/').test(searchTxt)) { alert('match'); }