我被困在一个javascript代码中......
我想增加下面字符串中的数字 -
即:
invoice[1][ap_details][1][description]
invoice[1][ap_details][2][description]
invoice[1][ap_details][3][description]
invoice[1][ap_details][4][description]
invoice[1][ap_details][5][description]
[description] - This could be any text.
我正在使用以下代码 -
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_details][1][description]
在上面的脚本上运行 - invoice[2][ap_details][2][description]
任何帮助都会得到满足。
答案 0 :(得分:1)
尝试使用.attr()
,RegExp
/(\d+)(?=\]\[)/
来匹配数字,然后通过左括号"]"
关闭括号"["
$("input").attr("name" , function(i, attr) {
return attr.replace(/(\d+)(?=\]\[)/, function(match) {
return Number(match) + 1
})
});
console.log($("input").attr("name"));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<input name="invoice[1]details[1][header]" />
&#13;
答案 1 :(得分:0)
如果您只想增加详细信息编号,那么您应该在正则表达式中更具体:set xtics 10.,1.,20.
示例:
.replace( /details\[\d+\]/g, ....