如何使用JavaScript替换此字符串中的数字?

如何使用JavaScript替换此字符串中的数字?,javascript,regex,string,Javascript,Regex,String,有人能告诉我如何用这个字符串中的另一个数字替换数字“2”吗?例如,如果它是2,它应该是3,如果它是3,它应该是4,等等 请注意,数字可以是1到5之间的任何数字 /img/tmp/2_th.jpg 只需使用字符串#替换: s.replace(/\d+(?=_)/, "replaced"); 要替换1-5之间的任何数字,请使用: s.replace(/[1-5](?=_)/, "replaced"); 在这里,(?=)用于正向前瞻,确保匹配后跟下划线的数字 更新:根据您的编辑,您可以使用此代码

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

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

/img/tmp/2_th.jpg
只需使用
字符串#替换

s.replace(/\d+(?=_)/, "replaced");
要替换1-5之间的任何数字,请使用:

s.replace(/[1-5](?=_)/, "replaced");
在这里,
(?=
)用于正向前瞻,确保匹配后跟下划线的数字

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

s.replace(/([1-5])(?=_)/, function(n) {return parseInt(n)+1;});
只需使用
字符串#替换

s.replace(/\d+(?=_)/, "replaced");
要替换1-5之间的任何数字,请使用:

s.replace(/[1-5](?=_)/, "replaced");
在这里,
(?=
)用于正向前瞻,确保匹配后跟下划线的数字

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

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

我从您的问题中了解到,您希望用以下数字替换任何数字(“如果是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"

我从您的问题中了解到,您希望用以下数字替换任何数字(“如果是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"

替换为什么?请参阅上面我修改过的问题。可能重复的替换为什么?请参阅上面我修改过的问题。可能重复的不是“仅仅”“。你可能应该向OP解释一下前瞻。@dystroy:谢谢你的评论,我开始键入一些解释,然后被一位同事分心了:P@anubhava谢谢你的答案很完美,到时候我会选择它作为答案。我知道这与我原来的问题没有直接关系,但是你能告诉我如何得到“2”并将其保存为变量吗?是的,我编辑了我的代码,给你的答案是将匹配的数字增加1(参见更新部分),而不是“仅仅”。您可能应该向OP解释一下“前瞻”。@dystroy:谢谢您的评论,我开始输入一些解释,然后被一位同事分心了:P@anubhava谢谢你的答案很完美,到时候我会选择它作为答案。我知道这与我原来的问题没有直接关系,但是你能告诉我如何得到“2”并将其保存为变量吗?是的,我编辑了我的代码,给你的答案是将匹配的数字增加1(参见更新部分)