JS正则表达式构造函数和正则表达式字面量的区别

背景

笔者在使用正则表达式的过程中,经常看到两种使用方式,比较好奇这两种方式有什么不同。

一种是 正则表达式构造函数 :new RegExp("xxx")

另一种是 正则表达式字面量: /xxx/

于是,就去网上搜了一下...结果看到国外有老哥也在问这个问题:

区别

  • 回答原文:
  • literal REGEX can't accept dynamic input, whereas the constructor can, because the pattern is specified as a string.
  • literal syntax is compliled only once, while the new Regexp() form must compile the regular expression each time it is called. - so performance will be better with the literal version.

翻译一下,关键区别在于:

  • 正则表达式字面量不能接受动态输入,即来自变量,而构造函数可以,因为模式被指定为字符串。
  • 正则表达式字面量语法只编译一次,而构造函数 Regexp()每次调用时都必须编译正则表达式。因此,字面版本的性能会更好。
相关推荐
冰暮流星6 分钟前
javascript之对象的建立-使用Object
开发语言·javascript·ecmascript
AI_零食8 分钟前
呼吸灯 - 通过鸿蒙PC Electron框架技术完成-在焦虑时代守护每一次呼吸的数字禅修
前端·javascript·华为·electron·前端框架·鸿蒙
ZC跨境爬虫27 分钟前
跟着 MDN 学JavaScript day_5:技能测试——变量实战
java·开发语言·前端·javascript
HjhIron34 分钟前
深入理解 JavaScript 执行机制:从编译到运行的完整揭秘
javascript
云水一下1 小时前
TypeScript 从零基础到精通(四):面向对象编程(类与继承)
javascript·typescript
shmily麻瓜小菜鸡1 小时前
Bootstrap 4 常用工具类速查表
前端·javascript·bootstrap
CDN3601 小时前
【架构进阶】告别配置漂移!用 NodeNext + Workspace 打造优雅的 TypeScript Monorepo
前端·javascript·typescript
超人不会飞_Jay1 小时前
6.2前端笔记
前端·javascript·笔记
2401_868534781 小时前
常见的 vue面试题目
前端·javascript·vue.js
胡萝卜术2 小时前
从零搭建 NLP Demo:用 ES6 模块化 + DeepSeek API 构建你的第一个 AI 应用
javascript·面试