2016-02-13 39 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