Javascript 递增给定字符串中的最后一个数字

Javascript 递增给定字符串中的最后一个数字,javascript,jquery,Javascript,Jquery,我被困在一个javascript代码中 我想增加下面字符串中的数字- i、 e: 我使用以下代码- var strNewName = $( this ).attr( 'name' ).replace( /\[\d+\]/g, function( strName ) { strName = strName.replace( /[\[\]']+/g, '' ); var intNumber = parseInt( strName ) + 1; return '[' + in

我被困在一个javascript代码中

我想增加下面字符串中的数字-

i、 e:

我使用以下代码-

var strNewName  = $( this ).attr( 'name' ).replace( /\[\d+\]/g, function( strName ) {
    strName = strName.replace( /[\[\]']+/g, '' );
    var intNumber = parseInt( strName ) + 1;
    return '[' + intNumber + ']';
});
$( this ).attr( 'name', strNewName );
上面的代码替换字符串中的两个数字

原始字符串-
invoice[1][ap\u details][1][description]
运行上述脚本后-
invoice[2][ap\u details][2][description]


欢迎提供任何帮助。

如果您只想增加详细信息编号,那么您应该在正则表达式中更加具体:
。替换(/details\[\d+\]/g,…。

例如:

'invoice[1].details[1]'.replace(/details\[(\d+)\]/g, function(match, num) {
    return "details["+ (+num + 1) +"]";
});
尝试使用
.attr()
RegExp
/(\d+)(=\]\[)/
匹配数字,然后是结束括号
“]”
然后是打开括号
“[”
$(“输入”).attr(“名称”),函数(i,attr){
返回属性替换(/(\d+)(=\]\[)/,函数(匹配){
返回号码(匹配)+1
})
});
console.log($(“输入”).attr(“名称”);


我有一个问题:为什么?为什么不使用两个嵌套循环?我尝试了上面的建议,但它增加了第一个数字而不是最后一个。我只想增加最后一个数字。btn感谢您的帮助:)@Abhijit“尝试了上面的建议,但它增加了第一个数字而不是最后一个。”在这里增加最后一个数字;在stacksnippets,JSFIDLE,我已经更新了我的问题。如有任何帮助,将不胜感激。
'invoice[1].details[1]'.replace(/details\[(\d+)\]/g, function(match, num) {
    return "details["+ (+num + 1) +"]";
});