javascript:从复杂的id字符串中提取数组索引

时间:2013-03-22 20:03:09

标签: javascript html regex

例如,id为

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

我尝试使用

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

不起作用....

4 个答案:

答案 0 :(得分:5)

如果id='_group[3].id.memberid'是标准格式,您可以

id.split(']')[0].split('[')[1]

答案 1 :(得分:2)

Regexp应该略有不同:

.match(/\[(\d+)\]/)[1];
  • 你不需要regexp周围的引号
  • 你必须逃避方括号

split解决方案:

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

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

答案 2 :(得分:2)

只是提供一种替代方法,它不能完全回答问题,但可能首先解决问题。

如果您可以更改HTML,我会执行以下操作:

HTML

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

JS:

var thisIndex = j(this).attr('data-id');

答案 3 :(得分:1)

正则表达式文字不应该在字符串中。删除.match调用内的撇号。

如果您打算将它们作为角色类,则不需要[];只需\d+即可。如果你打算让它们成为文字,你需要逃避它们:

/\[\d+\]/

我怀疑g是否可取。