我使用以下正则表达式将w/4096/h/2048
中的数字替换为自定义值。但现在我希望能够在w/
和/h
之后替换任何四位数字
imgSrc.replace('w/4096/h/2048', 'w/' + w + '/h/' + h)
我应该如何修改上面的代码以反映这一点?
答案 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);