使用javascript增加字符串中第三次出现的数字

时间:2017-06-02 10:11:17

标签: javascript regex

我有以下字符串:

[group][100][250][3][person]

我需要增加数字3。我尝试了匹配所有3的正则表达式/\[\d+\]/,但我无法从这里得到任何地方。

3 个答案:

答案 0 :(得分:2)

您可以通过匹配所有3个数字值来完成,只需增加第三个值:



var regex = /\[(\d+)\]\[(\d+)\]\[(\d+)\]/g

var input = "[group][100][250][3][person]";

var result = input.replace(regex, function(match,p1,p2,p3){
  return "[" + p1 + "][" + p2 + "][" + (parseInt(p3,10) + 1) + "]"
})
console.log(result);




答案 1 :(得分:1)

您可以将.replace与回调函数结合使用:

var s = "[group][100][250][3][person]";
var repl = s.replace(/((?:\[\d+\]){2}\[)(\d+)\]/,
          function($0, $1, $2) { return $1 + (parseInt($2)+1) + ']'; }
);

console.log(repl);
//=> "[group][100][250][4][person]"

答案 2 :(得分:0)

捕获"你的"字符串,请尝试下面的正则表达式:

(?:\[\d+\]){2}\[(\d+)\]

工作原理:

  • (?:...){2} - 非捕获组,发生2次。
  • \[\d+\] - 包含[,一系列数字和]
  • [,一个捕获组 - 数字序列和]

您要捕获的文本位于第一个捕获proup中。

相关问题