2012-01-06 37 views
0

我試圖在一組直括號之間的匹配號碼,例如:JS正則表達式的問題

匹配的0actionFields[actionFields][0][data[Report][action]]

這是我到目前爲止,我不斷收到空。

var match, matchRegEx = /^\(?\[(\d)\]\)$/; 
nameAttr = "actionFields[actionFields][0][data[Report][action]]", 
match = matchRegEx.exec(nameAttr); 
+2

表達式嘗試匹配字面括號中的數字('\(','\)'),但有沒有在您的字符串。你爲什麼要在那裏?另外,你的表達式被錨定在開始和結束處,所以只有諸如'([5])或'[3])'這樣的字符串會被匹配。 – 2012-01-06 22:54:02

回答

3

如果你看看你的正則表達式,你匹配的字符串,零個或一個(的開始,那麼[,然後\d,然後],然後),那麼該字符串的結尾。

你就應該能夠與/\[(\d)\]/逃脫,除非你不介意的[0]結構,以在字符串中的其他地方出現。

Here's a RegexPal顯示這一點。

+0

完美的解釋。謝謝。還要感謝你對RegexPal的這麼大的幫助。 – 2012-01-09 03:28:03

1

你的正則表達式應該是:

\[(\d+)\] 

,並拍攝第一組。與您正則表達式

的一個問題是,它在輸入(^的開始掛靠在結束$

1

如果有隻有一個號碼/\d+/ 只能測試