2016-02-13 36 views
0
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; 
    } 
} 

这是代码即时通讯的例子使用,目前它的输出多个触发器“案例” S阵列中的

found xxx 
found zzz 

有没有把多种方式来“触发”的情况下的方式?如

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

我已经试过这^^^但只有最后一件事情能够触发它,所以在上述情况下xxx和AAA不会触发,但BBB将

+0

啊我的坏,这的确是:3 我做了快速搜索,但我怕我不知道正确的“措辞”,所以我也没发现什么 – Cyan101

回答

0

是的,你可以这样做,但如果你有很多替代方案,我不会推荐它。在switch语句中,break确保程序存在switch语句,而不是继续以下情况。所以,如果你想检查多个案例,你可以简单地把break排除在最后一个之外,就像这样。

... 

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; 
} 
+0

谢谢:)这是真正有用的,我每个案件只有2/3触发器。 – Cyan101