簡體   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