0

谁能告诉我如何用这个字符串中的另一个数字替换数字“2”?例如,如果是 2,则应该是 3,如果是 3,则应该是 4,等等。

请注意,数字可以是 1 到 5 之间的任何数字。

/img/tmp/2_th.jpg
4

2 回答 2

3

只需使用String#replace

s.replace(/\d+(?=_)/, "replaced");

要替换 1-5 中的任何数字,请使用:

s.replace(/[1-5](?=_)/, "replaced");

这里(?=_)使用了一个肯定的前瞻,它确保匹配一个后跟下划线的数字_

更新:根据您的编辑,您可以使用此代码将匹配的数字增加 1:

s.replace(/([1-5])(?=_)/, function(n) {return parseInt(n)+1;});

阅读更多关于 Regex 中的 Lookarounds

于 2013-09-30T14:31:16.897 回答
0

我从您的问题中了解到,您想用以下数字替换任何数字(“如果是 2,则应该是 3,如果是 3,则应该是 4”)。

然后你可以这样做:

var input = "/img/tmp/2_th.jpg";
var output = input.replace(/\d+/g,function(s){ return +s+1 })

结果 :

"/img/tmp/3_th.jpg"
于 2013-09-30T14:39:52.887 回答