当正则表达式运行JavaScript时,是正则表达式引擎来评估表达式编译代码吗?或者引擎本身是用javascript编写的?
在做一些基本的字符串匹配测试时,我发现单个正则表达式比我执行相同操作的JavaScript函数快得多,所以我想知道为什么正则表达式更快。</ p> P.S:我对正则表达式完全不熟悉。
答案 0 :(得分:6)
这取决于实现,但我知道的每个实现(例如Gecko,Trident)都是在编译代码中实现的。
答案 1 :(得分:3)
至于实现是否使用本机代码,它取决于js引擎。
您可以更快地影响您的JavaScript代码。
如果您使用javascript regex语法,使用/myregexhere/
语法,则每次执行代码时都会编译正则表达式。如果在Javascript中使用RegEx对象,则可以编译正则表达式,并在多次使用相同模式时获得更好的性能。