2010-02-12 87 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是已經編譯的正則表達式。