2009-07-02 6 views
3

正規表現でJavaScriptを実行する場合、式のコンパイル済みコードを評価する正規表現エンジンはありますか?またはエンジン自体がjavascriptで書かれていますか?JavaScriptでは、正規表現はコンパイルされたコードで評価されますか?

いくつかの基本的な文字列をやってはテストと一致している間、私は単一の正規表現は、同じことを、私のJavaScript関数よりもかなり高速であることがわかったので、正規表現は速かった理由を私は疑問に思いました。

P.S:私は完全に正規表現です。

答えて

6

これは実装までですが、私が知っているすべての実装(Gecko、Tridentなど)はコンパイルされたコードで実行されます。

3

実装がネイティブコードを使用するかどうかは、jsエンジンに依存します。

あなたのJavaScriptコードはより速く影響を与えることができます。

/myregexhere/構文を使用してjavascript regex構文を使用している場合、正規表現はコードが実行されるたびにコンパイルされます。 JavascriptでRegExオブジェクトを使用する場合、同じパターンを何度も使用すると、正規表現をコンパイルしてより良いパフォーマンスを得ることができます。

+0

/myregexhere /構文は、同様にコンパイルする必要があります。 –

+0

変数に格納されている場合は、それが実行され、再度コンパイルされます。 – Kekoa

関連する問題