You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode中为JS的new RegExp实现正则语法高亮?

如何让new RegExp中的正则表达式像正则字面量一样语法高亮?

正则语法高亮对比

示例代码:

/^this\b(.*?)\bis(:{0,1})/g; 

new RegExp(/*regex*/ `^this\b(.*?)\bis(:{0,1})`, 'g'); // << 这里能实现语法高亮吗?

更新说明:我之前忽略了一个关键问题——这其实不是个合理需求。字符串里的转义字符\和正则字面量里的含义不一样,所以字符串不该被当作正则字面量高亮(除非你明确需要且能解决\的转义问题)。

实际解决思路与注意事项

  • 主流编辑器(比如VS Code)原生不支持直接给new RegExp的字符串参数做正则字面量高亮,但可以靠编辑器插件实现:
    • 安装专门的正则语法高亮插件,有些插件能识别你写的/*regex*/这类注释标记,自动给后面的模板字符串启用正则高亮。
    • 部分插件支持自定义规则,你可以设置让特定注释后的字符串触发正则高亮。
  • 但一定要重视你提到的转义问题:正则字面量里的\b是单词边界,模板字符串里的\b却是退格符,实际用的时候得写成\\b才能让正则生效。要是只追求高亮不管转义,写出来的正则逻辑会和字面量版本完全不一样,这是必须注意的硬伤。

如果只是临时想看高亮效果,也可以先写正则字面量,确认逻辑没问题后再转成new RegExp形式,记得手动把所有转义符再加一层。

内容的提问来源于stack exchange,提问作者Nor.Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:32:00