2015-10-08 126 views
-5

我想爲創建一個正則表達式:比賽組,正則表達式

我的正則表達式:/^(\d+)[&]|[&](\d+)|(\d+)/g

測試與期望的結果:

  1. 1501:1501
  2. 1501&&15011:1501,15011
  3. 1501;or;15011:1501,15011
  4. 1501;OR;15011:1501,15011
  5. >=1501;OR;15011:15011
  6. 1501;OR;>=15011:1501
  7. >=15011:空

但它似乎的不是str.match()工作在Javascript。

+1

爲什麼不' '1501 && 15011'.split(' &&');' – Tushar

+0

由於測試?可以是'1501'或'15011 && 15001'或'1501;或; 15011' ... – tonymx227

+1

那麼爲什麼不只是'拆分'('[^ \ d] +')'來拆分非數字字符 –

回答

2

嘗試用:

[;&](\d+)|^(\d+)[&;]? 

DEMO

你可以得到的值與捕獲組1和2

+0

它不工作''> = 1501; OR; 15011'.match(/ [;&](\ d +)| ^(\ d +)[&; ]?/ g)':'; 15011',結果應該是'15011'。 – tonymx227

+0

@ tonymx227正如我在回答中所寫的,_you可以獲取捕獲的組1和2_的值,而不是直接用'match()' –

+0

好吧那麼還有其他函數嗎? – tonymx227