REGEX:如何替换以" w /"开头的四位数字;和" h"?

时间:2016-09-20 04:00:38

标签: javascript regex

我使用以下正则表达式将w/4096/h/2048中的数字替换为自定义值。但现在我希望能够在w//h之后替换任何四位数字

imgSrc.replace('w/4096/h/2048', 'w/' + w + '/h/' + h)

我应该如何修改上面的代码以反映这一点?

3 个答案:

答案 0 :(得分:2)

使用[0-9]匹配数字,使用量词{4}匹配其中的四个:

imgSrc.replace('w/[0-9]{4}/h/[0-9]{4}', 'w/' + w + '/h/' + h)

作为[0-9]的简写,您可以使用\d

imgSrc.replace('w/\d{4}/h/\d{4}', 'w/' + w + '/h/' + h)

答案 1 :(得分:1)

如果imgSrc =" w / 4096 / h / 2048",并且您想要替换" 4096"用" abcd"和" 2048"与" efgh",尝试tihs:

var imgSrc = "w/4096/h/2048";
imgSrc.replace(new RegExp('(w/)(\\d{4})(/h/)(\\d{4})'), '$1abcd$3efgh');

上面第二行返回以下内容:

w/abcd/h/efgh

答案 2 :(得分:1)

您可以使用RegExp捕获群组/(\w\/)(\d+)(\/\w\/)(\d+)/



var str = "w/4096/h/2048";
var w = "123";
var h = "456"
var res = str.replace(/(\w\/)(\d+)(\/\w\/)(\d+)/
                      , "$1" + w + "$3" + h);
console.log(res);