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

时间:2015-12-07 15:53:57

标签: javascript jquery

我被困在一个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]

任何帮助都会得到满足。

2 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:0)

如果您只想增加详细信息编号,那么您应该在正则表达式中更具体:set xtics 10.,1.,20.

示例:

.replace( /details\[\d+\]/g, ....