2012-01-06 6 views
0

私はたとえば、ストレートブラケットのセットの間に数と一致するようにしようとしている:JS正規表現の問題

マッチactionFields[actionFields][0][data[Report][action]]

0これは私がこれまで持っていると私はnullを取得しておくものです。

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

のためにテストすることができますあなたの式は、リテラルの括弧を一致させようとします( '\('、 '\)')が、どれもあなたの文字列ではありません。なぜあなたはそこにいるのですか?また、式は最初と最後に固定されているので、 '([5])'や '[3] 'などの文字列だけがマッチします。 –

答えて

3

、あなたがして、その後、その後、文字列、0または1 ([\d])、文字列の後、最後の先頭に一致しています。

[0]構造があなたの文字列の他の場所に表示されることを期待している場合を除き、/\[(\d)\]/で逃げることができます。

Here's a RegexPalこれを示す。

+0

完璧な説明。ありがとうございました。 RegexPal、そのような大きな助けにも感謝します。 –

1

あなたの正規表現は次のようになります。

\[(\d+)\] 

と最初のグループをキャプチャします。あなたの正規表現と

一つの問題は、それが最後$で入力(^の先頭に固定されていることです。あなたは正規表現を見れば

1

一つだけの数/\d+/ がある場合にのみ、数