Javascript 正则表达式:如何替换前面有“quot;w/";及;h";?

Javascript 正则表达式:如何替换前面有“quot;w/";及;h";?,javascript,regex,Javascript,Regex,我使用以下正则表达式将w/4096/h/2048中的数字替换为自定义值。但是现在我想能够替换w/和/h之后的任何类型的四位数字 imgSrc.replace('w/4096/h/2048', 'w/' + w + '/h/' + h) 我应该如何修改上面的代码以反映这一点?使用[0-9]匹配一个数字,使用量词{4}匹配其中四个: imgSrc.replace('w/[0-9]{4}/h/[0-9]{4}', 'w/' + w + '/h/' + h) 作为[0-9]的缩写,您可以使用\d:

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

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

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

使用
[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)

使用
[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)
如果
imgSrc
=“w/4096/h/2048”,并且您希望将“4096”替换为“abcd”,将“2048”替换为“efgh”,请尝试以下操作:

var imgSrc = "w/4096/h/2048";
imgSrc.replace(new RegExp('(w/)(\\d{4})(/h/)(\\d{4})'), '$1abcd$3efgh');
上面的第二行返回以下内容:

w/abcd/h/efgh
如果
imgSrc
=“w/4096/h/2048”,并且您希望将“4096”替换为“abcd”,将“2048”替换为“efgh”,请尝试以下操作:

var imgSrc = "w/4096/h/2048";
imgSrc.replace(new RegExp('(w/)(\\d{4})(/h/)(\\d{4})'), '$1abcd$3efgh');
上面的第二行返回以下内容:

w/abcd/h/efgh

您可以使用
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);

控制台日志(res)
您可以使用
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);

控制台日志(res)/(?:w/)[0-9]{1,4}/(?:/h)[0-9]{1,4}/(?:w/)[0-9]{1,4}/(?:/h)[0-9]{1,4}/JS正则表达式文字未在带引号的字符串中定义。应该是
/w\/\d{4}\/h\/\d{4}/
JS正则表达式文本未在带引号的字符串中定义。应该是
/w\/\d{4}\/h\/\d{4}/
当捕获的部分是静态的时,不需要麻烦捕获组。当捕获的部分是静态的时,不需要麻烦捕获组。这是迄今为止唯一有效的答案。但在某些情况下会得到重复的数字:
http://vrcam-10065475.image.myqcloud.com/e9a5a32f17602d2242a8.jpg?imageView2/4096/w/2048/h/2048/q/100/format/jpg
@alex使用
(w\/)
作为第一个捕获组,使用
(\/\h\/)
作为第三个捕获组,使用
var res=str.replace(/(w\/)(\d+)(\/\h\/)(\d+)/“$1”+w+”$3”+h)这是迄今为止唯一有效的答案。但在某些情况下会得到重复的数字:
http://vrcam-10065475.image.myqcloud.com/e9a5a32f17602d2242a8.jpg?imageView2/4096/w/2048/h/2048/q/100/format/jpg
@alex使用
(w\/)
作为第一个捕获组,使用
(\/\h\/)
作为第三个捕获组,使用
var res=str.replace(/(w\/)(\d+)(\/\h\/)(\d+)/“$1”+w+”$3”+h)