たとえば、id は
id='_group[3].id.memberid'
を使用して「3」を抽出しようとします
var thisIndex = j(this).attr('id').match('/[\d]+/g')[0];
うまくいきません....
たとえば、id は
id='_group[3].id.memberid'
を使用して「3」を抽出しようとします
var thisIndex = j(this).attr('id').match('/[\d]+/g')[0];
うまくいきません....
標準形式の場合id='_group[3].id.memberid'
は、次のことができます
id.split(']')[0].split('[')[1]
質問に正確に答えることはできませんが、そもそも問題を解決する可能性のある代替アプローチを提供するためだけに。
HTMLを変更できる場合は、次のようにします。
HTML
<div id="_group[3].id.memberid" data-id="3"></div>
JS:
var thisIndex = j(this).attr('data-id');
正規表現は少し異なるはずです:
.match(/\[(\d+)\]/)[1];
またはsplit
解決策:
.split(/\]|\[/)[1];
正規表現リテラルは文字列であってはなりません。呼び出し内のアポストロフィを削除します.match
。
これら[]
を文字クラスとして使用する場合は必要ありません。だけ\d+
で十分でしょう。それらをリテラルにする場合は、エスケープする必要があります。
/\[\d+\]/
g
どちらが望ましいかは疑問です。