所以我在RegExes吮吸。仍然。
我正在使用jQuery循环一些HTML输入,并且,在他们的名称属性中,我想将仅替换为第一组方括号中的“任何”。
我有这些HTML输入:
<fieldset id="set">
<input type="text" name="shift[305][sub_amount]" value="Snoopy" />
<input type="text" name="shift[405][price]" value="12" />
<input type="text" name="cost[insert_1392222118][amount]" value="Hoof" />
</fieldset>
我的目标是这个
<fieldset id="set">
<input type="text" name="shift[replaced][sub_amount]" value="Snoopy" />
<input type="text" name="shift[replaced][price]" value="12" />
<input type="text" name="cost[replaced][amount]" value="Hoof" />
</fieldset>
所以我就像这样循环它们:
$('#set').find(":input").attr("name", function(index, element) {
return element.replace(/\[[0-9]+\]/, function(match) {
return '[replaced]';
})
});
但是我的正则表达式只修复了带有数字数据的方括号。
JSFiddle-example只在方括号只包含数字数据时解决它: http://jsfiddle.net/XLnAC/
谁可以告诉我使用哪个RegEx来定位方括号的第一个实例?
我发现了类似的问题,但没有关于如何只查找第一个实例的详细信息。 Regular expression for detecting round or square brackets
答案 0 :(得分:2)
你可以使用这个:
/\[[^\]]+\]/
你也不需要在这里使用一个功能:
return element.replace(/\[[^\]]+\]/, '[replaced]')