繁体   English   中英

使用 RegEx JS 替换字符串中的字符

[英]Replace character in a string using RegEx JS

我有许多输入名称,最后一位数字发生了变化:

<input name="ProductsLang[1][text][0]">
<input name="ProductsLang[1][text][1]">
<input name="ProductsLang[1][text][2]">

我正在动态添加新输入,我需要相应地重新计算所有索引,因为我可能会在两者之间添加一个。 所以我有一个带有正则表达式的小函数来替换它们:

$('input').each(function(i) {
    var matches = $(this).attr('name').match(/ProductsLang\[\d+\]\[[^\]]+\]\[(\d+)\]/);
    var newName = $(this).attr('name').replace(matches[1], i);
    $(this).attr('name', newName);
});

它的工作很奇怪......而不是改变最后一位我可以得到这样的结果:

<input name="ProductsLang[1][text][0]">
<input name="ProductsLang[1][text][1]">
<input name="ProductsLang[2][text][1]">
<input name="ProductsLang[1][text][3]">

为什么替换会这样? 帮我弄清楚。 我需要的只是增加最后一位数字。

用这一行替换你的.each的正文

$(this).attr('name', $(this).attr('name').replace(/\[\d+]$/, '[' + i + ']'));

/\\[\\d+]$/模式匹配[ 、 1 个或多个数字,然后匹配字符串末尾的] (由于$锚点)。

在线查看正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM