【发布时间】:2009-07-17 13:44:08
【问题描述】:
我发现以下表达式旨在修改克隆的 html 元素的 id,例如将contactDetails[0] 更改为contactDetails[1]:
var nel = 1;
var s = $(this).attr(attribute);
s.replace(/([^\[]+)\[0\]/, "$1["+nel+"]");
$(this).attr(attribute, s);
我对正则表达式不是很熟悉,但我尝试在The Regex Coach 的帮助下对其进行解释,但我仍在苦苦挣扎。似乎([^\[]+) 匹配一个或多个不是“[”的字符,而\[0\]/ 匹配[0]。中间的/ 我解释为“包含两者”,所以我不明白为什么作者甚至包含了第一个表达式。
我不明白替换字符串中的 $1 是什么,如果我使用 Regex Coach 替换功能,如果我只是使用 [0] 作为搜索和 1 作为替换,我会得到正确的结果,但是如果我改变s.replace(/\[0\]/, "["+nel+"]"); 的 javascript 字符串 s 保持不变。
我将不胜感激任何关于原作者意图的建议,并帮助我找到一个解决方案,该解决方案将成功替换搜索字符串中任何位置的方括号中的数字。
【问题讨论】:
标签: javascript regex