在this帖子中,有人说预编译正则表达式将提高脚本性能。作者用performance test证明了这一点。然而,据我所知,这篇文章讨论的是重复使用正则表达式的情况。如果脚本中有许多正则表达式,但每个正则表达式只使用一次,该怎么办?在整个脚本中只使用一次的预编译正则表达式会带来性能上的好处吗?
发布于 2013-02-19 07:40:17
如果它只使用一次,那么就使用regexp字面量。
你的观点是正确的-只有当你经常使用相同的正则表达式时,它才有意义。
发布于 2018-01-23 15:36:03
我认为这取决于浏览器的实现,我们不能断言一种方法更好。
查看firefox和chrome中的不同结果。

我搞不懂为什么chrome对未重新编译的正则表达式提供更快的结果。
发布于 2014-02-20 23:06:14
我不相信你链接的性能测试是决定性的。如果查看结果,差异可以忽略不计,因为正则表达式还不够复杂。看看this测试可以找到更好的答案。
无论采用哪种方式,存储正则表达式只会在多次使用正则表达式的情况下提高性能。这种性能提升完全是由于regex本身的初始编译开销造成的。如果您将正则表达式存储在一个变量中,那么它仍将在第一次编译时被编译,就像文本将在第一次被编译一样。当第二次使用存储的正则表达式并且它已经被编译时,就会发生这种差异,而文本正则表达式则必须再次编译。
https://stackoverflow.com/questions/14947307
复制相似问题