我有一个字符串" styles-123.min.js",我想用" styles-456.min.js"替换。所以我这样做:
str = "styles-123.min.js";
str = str.replace(/(styles|apps)/, "$0" + "-456");
alert(str)
$ 0未解析,结果为" $ 0-456-min.js"。为什么呢?
感谢。
答案 0 :(得分:0)
在JavaScript中,使用$&
代替$0
来引用整个匹配值。
请参阅String#replace()
reference:
$&
插入匹配的子字符串。
如果您不使用$1
,模式中的捕获组中没有任何意义,您可以使用
str = "styles-123.min.js";
str = str.replace(/styles|apps/, "$&-456");
document.body.innerHTML = str;
答案 1 :(得分:0)
只需使用以下正则表达式检查-123
。
正则表达式: -\d+
Javascript代码
str = "styles-123.min.js";
str = str.replace(/-\d+/, "-456");
alert(str);

<强> Regex101 Demo 强>
答案 2 :(得分:0)
你可以这样做($1
表示第一个匹配的组):
str = "styles-123.min.js";
str = str.replace(/(styles|apps)[0-9-]+/, "$1-456");
alert(str);