繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM