2017-06-28 60 views
1

下面是我的代碼如何使用正則表達式

/config\/info\/newplan/.test(string) 

這將在查找/配置/信息/嘉蘭圖/字符串返回true測試URL字符串。

不過,我想在同一時間,以測試不同的條件如下面

/config\/info\/newplan/.test(string) || /config\/info\/oldplan/.test(string) || /config\/info\/specplan/.test(string) 

將返回true,如果該字符串結束或者用「嘉蘭圖」或「oldplan」或「specplan」

我的問題是如何使一個更好的代碼,而不是寫「/配置/ \信息/ \ XXXX \這麼多次

回答

1

使用alternation group

/config\/info\/(?:new|old|spec)plan/.test(string) 
       ^^^^^^^^^^^^^^^ 

查看regex demo

圖案的詳細資料

  • config\/info\/ - 字面config/info/
  • (?:new|old|spec) - 一個non-capturing group(其中|分離的替代品)相匹配的子串中的任何一個:newoldspec
  • ​​- 字面​​子串
1

,這將是你的賭注

config\/info\/(newplan|oldplan|specplan)\/ 
OR 
config\/info\/(newplan|oldplan|specplan)\/.test(string) 

請參閱在[https://regex101.com/r/NyP1HP/1]的例子,因爲它不允許像下面

/config/info/new1plan/ 
/config/info/newoldplan/ 
/config/info/specplan1/ 
其他的可能性