我有一个表单,其中 name 属性会被更新,但问题是我使用了多维值,如下所示:
<input type="text" name="questions[0][question]" />
<input type="text" name="questions[0][order]" />
<input type="text" name="questions[0][active]" />
<input type="text" name="answers[0][1][answer]" />
<input type="text" name="answers[0][2][answer]" />
<input type="text" name="answers[0][3][answer]" />
<input type="text" name="questions[1][question]" />
<input type="text" name="questions[1][order]" />
<input type="text" name="questions[1][active]" />
etc...
我需要使用JavaScript来更改方括号中的值,无论它们位于什么位置。
我尝试使用以下正则表达式来匹配方括号内的值:/(?<=\[)[^\]]*(?=\])/g
但是这会匹配所有出现的情况,我需要做的是找到并替换第n个出现的情况。如果有另一种方法可以在不使用正则表达式的情况下找到和替换方括号内的值,我非常愿意听取建议。提前感谢您的帮助。已解决。
最终代码如下:
$('input', this).each(function(){
var name = $(this).attr('name');
var i = 0;
$(this).attr('name', name.replace(/\[.+?\]/g,function (match, pos, original) {
i++;
return (i == 1) ? "[THE REPLACED VALUE]" : match;
}));
});