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()每次调用时都必须编译正则表达式。因此,字面版本的性能会更好。
相关推荐
柳杉16 分钟前
使用AI从零打造炫酷医疗数据可视化大屏,源码免费拿!
前端·javascript·数据可视化
Gss7771 小时前
Linux 正则表达式详解(基础 + 扩展 + 实操)
linux·运维·正则表达式
黑客思维者1 小时前
正则表达式(九)网络安全:检测SQL注入攻击 + 检测XSS跨站脚本 + 扫描敏感信息泄露 + 匹配暴力破解异常IP
sql·web安全·正则表达式
黎雁·泠崖1 小时前
Java常用类核心详解(七):正则表达式 Regex 从入门到实战
java·开发语言·正则表达式
秀儿还能再秀1 小时前
正则表达式核心语法 + Python的 re 库中常用方法
python·正则表达式
xcLeigh1 小时前
Python入门:Python3 正则表达式全面学习教程
python·学习·正则表达式·教程·python3
简单Janeee1 小时前
[Vue 3 从零到上线]-第四篇:组件化思维——把网页像积木一样拆解
javascript·vue.js·ecmascript
Heo2 小时前
深入React19任务调度器Scheduler
前端·javascript·面试
boooooooom3 小时前
Vue3 nextTick 实现大变化:微任务优先,彻底搞懂渲染时机!
javascript·vue.js·面试
用户14436183400973 小时前
你不知道的JS上-(九)
前端·javascript