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()每次调用时都必须编译正则表达式。因此,字面版本的性能会更好。
相关推荐
烬羽13 小时前
JS 单线程为什么不卡?一文吃透同步异步、Event Loop 和 Promise
javascript·面试
葬送的代码人生13 小时前
JavaScript 数组完全指南:从入门到实战
前端·javascript·算法
用户9385156350713 小时前
深入理解 JavaScript 同步与异步:从单线程到事件循环与 Promise
前端·javascript
云水一下14 小时前
Vue.js从零到精通系列(一):初识Vue——背景、环境与第一个应用
前端·javascript·vue.js
大大杰哥14 小时前
Vue2学习(1)--了解基本方法与概念
javascript·学习·vue
云水一下15 小时前
Vue.js从零到精通系列(二):响应式核心——ref、reactive、computed与watch
前端·javascript·vue.js
卡布鲁15 小时前
Webpack 核心原理与自定义 Loader/Plugin 实战
前端·javascript
小林ixn15 小时前
从拼多多手机号验证到模板引擎:深入正则表达式与 JS 字符串处理
开发语言·javascript·正则表达式
智码看视界15 小时前
Web Storage 的无障碍实践与工程化应用
前端·javascript·web
半个烧饼不加肉16 小时前
JS 底层探究-- 普通函数和构造函数
开发语言·javascript·原型模式