0

たとえば、id は

id='_group[3].id.memberid'

を使用して「3」を抽出しようとします

var thisIndex = j(this).attr('id').match('/[\d]+/g')[0];

うまくいきません....

4

4 に答える 4

5

標準形式の場合id='_group[3].id.memberid'は、次のことができます

id.split(']')[0].split('[')[1]
于 2013-03-22T20:04:23.187 に答える
2

質問に正確に答えることはできませんが、そもそも問題を解決する可能性のある代替アプローチを提供するためだけに。

HTMLを変更できる場合は、次のようにします。

HTML

<div id="_group[3].id.memberid" data-id="3"></div>

JS:

var thisIndex = j(this).attr('data-id');
于 2013-03-22T20:10:48.390 に答える
2

正規表現は少し異なるはずです:

.match(/\[(\d+)\]/)[1];
  • 正規表現を引用符で囲む必要はありません
  • 角かっこをエスケープする必要があります

またはsplit解決策:

.split(/\]|\[/)[1];

テスト: http://jsfiddle.net/dfsq/Q5bMP/

于 2013-03-22T20:05:26.223 に答える
1

正規表現リテラルは文字列であってはなりません。呼び出し内のアポストロフィを削除します.match

これら[]を文字クラスとして使用する場合は必要ありません。だけ\d+で十分でしょう。それらをリテラルにする場合は、エスケープする必要があります。

/\[\d+\]/

gどちらが望ましいかは疑問です。

于 2013-03-22T20:04:27.200 に答える