正则表达式只替换匹配的一部分

use*_*888 6 javascript regex

我想只替换正则表达式模式匹配的一部分字符串.我找到了这个答案,但我没理解......
我如何使用替代?

我想要的例子:保留第一个slug数字,只替换其他数字

/09/small_image/09x/> /09/thumbnail/
1st:unknown digit
2nd:"small_image"
3rd:unknown digit + "x"

这是我到目前为止:

var regexPattern = /\/\d\/small\_image\/\d*x/;
var regexPattern = /\/\d\/(small\_image\/\d*x)$1/;  ??

var result = regexPattern.test(str);
if (result) {
  str = str.replace(regexPattern, 'thumbnail');
}
Run Code Online (Sandbox Code Playgroud)

nnn*_*nnn 10

var input = "/09/small_image/09x/";
var output = input.replace(/(\/\d+\/)small_image\/\d*x/, "$1thumbnail");
console.log(output);
Run Code Online (Sandbox Code Playgroud)

说明:

将要保留的部分放在括号中,然后$1替换字符串中引用它- 不要放入$1正则表达式.因此,(\/\d+\/)意味着匹配正斜杠后跟一个或多个数字,然后是另一个正斜杠.

(请注意,您不需要在正则表达式中转义下划线.)