如何通过正则表达式增加匹配的数字?

ale*_*lex 4 javascript regex

我在我的一个网络应用中添加了一个新字段,供访问者添加产品.推送"添加产品"克隆其中一个现有输入,并将其设置为空白值.

但是我需要更新名称.名称采用以下格式:

<input type="text" name="product[0][0][3][title]" value="my product" id="input-AbGHtQS3" maxlength="150" />
Run Code Online (Sandbox Code Playgroud)

我需要递增最后一个数字索引,即本例中的3.

我写了一个正则表达式来匹配相应的字符,但是如何增加最后一个数字呢?

这是我的正则表达式:

/^product\[\d+\]\[\d+\]\[(\d+)\]\[.+\]/
Run Code Online (Sandbox Code Playgroud)

我怎么能增加最后一个数字?

And*_*igh 10

from:使用RegExp匹配括号,然后递增它

replace方法可以将函数作为其第二个参数.它获取匹配(包括子匹配)并返回替换字符串.其他人已经提到括号需要转义.

"Item Name (4)".replace(/\((\d+)\)/, function(fullMatch, n) {
    return "(" + (Number(n) + 1) + ")";
});
Run Code Online (Sandbox Code Playgroud)

所以,

*编辑:

这应该工作

"product[0][0][3][title]".replace(/(^product\[\d+\]\[\d+\]\[)(\d+)(\]\[.+\])/, function(fullMatch, n, a, o) {
    return n + (Number(a) + 1) + o;
});
Run Code Online (Sandbox Code Playgroud)