关于javascript:多个触发数组中的“case”

Multiple triggers “case”s in an array

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    var message ="hello [[xxx]] bye [[ZZZ]]"

var result, re = /\[\[(.*?)\]\]/g;
while ((result = re.exec(message)) != null) {
    switch (result[1].toLowerCase()) {

        case"xxx":
            console.log("found xxx");
            break;

        case"zzz":
            console.log("found zzz");
            break;
    }
}

这是我使用的代码的一个例子,当前它将输出

1
2
found xxx
found zzz

有没有一种方法可以通过多种方式"触发"一个案件?如

1
2
3
case"xxx","aaa","bbb":
            console.log("found 3xletters");
            break;

我试过这个^^^但是只有最后一件事可以触发它,所以在上面的情况下,xxx和aaa不会触发,但是bbb会


是的,你可以这样做,但是如果你有很多选择的话,我不建议你这样做。在switch语句中,break确保程序存在switch语句,而不是继续以下情况。所以,如果你想检查多个案例,你只需在最后一个案例中去掉break,就像这样。

1
2
3
4
5
6
7
8
9
10
11
12
...

switch (result[1].toLowerCase()) {
  case"aaa":
  case"bbb":
  case"xxx":
      console.log("found aaa, bbb, or xxx");
      break;
  case"zzz":
      console.log("found zzz");
      break;
}