17

したがって、Javascriptで正規表現をインスタンス化すると自動的にコンパイルされ、その正規表現が変数に格納されている場合、再コンパイルせずに再利用されることを知っています。例:

var re = /[Ff]oo|[Bb]ar/;
"Foo".match(re); // ["Foo"]
"Baz".match(re); // null

ただし、重複した正規表現は再コンパイルされますか、または V8 (Chrome/Node.js) はそれらをインテリジェントに再利用しますか (PHP が preg_* 関数で行うように)?

function isFooBar(str) {
  return str.match(/[Ff]oo|[Bb]ar/);
}
isFooBar("Foo"); // ["Foo"]
isFooBar("Baz"); // null

明確にするために、最初の例が正規表現の1つのコンパイルになることを私は知っています。しかし、2 番目の例はどうでしょうか。

4

2 に答える 2