在JavaScript中,是否在编译代码中评估正则表达式?

时间:2009-07-02 17:57:27

标签: javascript regex

当正则表达式运行JavaScript时,是正则表达式引擎来评估表达式编译代码吗?或者引擎本身是用javascript编写的?

在做一些基本的字符串匹配测试时,我发现单个正则表达式比我执行相同操作的JavaScript函数快得多,所以我想知道为什么正则表达式更快。<​​/ p> P.S:我对正则表达式完全不熟悉。

2 个答案:

答案 0 :(得分:6)

这取决于实现,但我知道的每个实现(例如Gecko,Trident)都是在编译代码中实现的。

答案 1 :(得分:3)

至于实现是否使用本机代码,它取决于js引擎。

您可以更快地影响您的JavaScript代码。

如果您使用javascript regex语法,使用/myregexhere/语法,则每次执行代码时都会编译正则表达式。如果在Javascript中使用RegEx对象,则可以编译正则表达式,并在多次使用相同模式时获得更好的性能。