Javascript 递增给定字符串中的最后一个数字
我被困在一个javascript代码中 我想增加下面字符串中的数字- i、 e: 我使用以下代码-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
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) +"]";
});