2010-02-12 93 views
6

有没有更简单的方法来写这个?JavaScript正则表达式编译()

var needed = /\$\[\w+\]/mi; 
needed.compile(/\$\[\w+\]/mi); 

为什么当我已经在第一行中声明它时,必须将该模式传回正则表达式?!

+0

是什么让你觉得你呢? – 2010-02-12 01:14:34

+1

如果我不再包含该模式,则正则表达式需要大约两倍的时间。 – JamesBrownIsDead 2010-02-12 01:16:10

回答

7

在JavaScript中定义正则表达式有两种方法 - 一种通过对象构造函数,另一种通过文字。该对象可以在运行时更改,但是该文字在脚本加载时编译,并提供更好的性能。

var txt=new RegExp(pattern,modifiers); 

或者更简单地说:

var txt=/pattern/modifiers; 

这是cobbai是说同样的事情。总之,你不必这样做。

2

MDC

当表达式求值

的文字符号提供的正则表达式编译所以/\$\[\w+\]/mi是已经编译的正则表达式。