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

正则表达式应该略有不同:

.match(/\[(\d+)\]/)[1];
  • 你不需要正则表达式的引号
  • 你必须转义方括号

split解决方案:

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

测试:http: //jsfiddle.net/dfsq/Q5bMP/

于 2013-03-22T20:05:26.223 回答
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 回答
1

正则表达式文字不应位于字符串中。.match删除通话中的撇号。

如果您打算将[]它们作为字符类,则没有必要;就\d+足够了。如果您打算让它们成为文字,则需要转义它们:

/\[\d+\]/

我怀疑这g也是可取的。

于 2013-03-22T20:04:27.200 回答