[英]Increment 3rd occurence of digit in string with javascript
我有以下字符串:
[group][100][250][3][person]
我需要增加数字3
。 我尝试了匹配所有3的正则表达式/\\[\\d+\\]/
,但我无法从这里得到任何东西。
您可以通过匹配所有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);
您可以将.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]"
要捕获“你的”字符串,请尝试以下正则表达式:
(?:\[\d+\]){2}\[(\d+)\]
这个怎么运作:
(?:...){2}
- 非捕获组,发生2次。 \\[\\d+\\]
- 包含[
,一系列数字和]
。 [
,捕获组 - 数字序列和]
。 您要捕获的文本位于第一个捕获proup中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.