replace方法使用正则表达式"$`"为什么把目标结果打印两遍?

发布于 2022-09-05 08:07:23 字数 179 浏览 12 评论 0

var m = "e.js?v=0.0.5".replace(/\?.*/,'$`');
console.log(m);

//想获取:'e.js'
//实际获取到:'e.jse.js'

想试试$系列的用法,用了这个案例做例子。有谁知道$系列都怎么用(一般我只会用$+数字的用法),比如这个?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

故人的歌 2022-09-12 08:07:24

.replace()中$`表示位于匹配子串左侧的文本。
你匹配到的内容是“?v=0.0.5”,其左侧的内容是“e.js”,
你把“?v=0.0.5”替换成“e.js”结果当然是“e.jse.js”,并不是打印了两次

参阅:http://www.w3school.com.cn/js...

尤怨 2022-09-12 08:07:24
var m = "e.js?v=0.0.5".replace(/\?.*/,'$\'');
别想她 2022-09-12 08:07:24

后面是多余的,不用'$`',直接为''就可以
图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文