正規表現のキャプチャ動作が変更されました

公開日: | カテゴリー: JavaScript

概要

String.replace を含む正規表現において、数量詞によってキャプチャグループの参照が妨げられた場合、そのグループの一致テキストが空文字列の代わりに undefined となります (このサンプルコード も参照してください)。なお、後方互換性のため、RegExp.$N は引き続き undefined ではなく空文字列を返します (Bug 1053944)。

Firefox 32 で発生した正規表現のパフォーマンスリグレッションも Firefox 34 で修正されました。この問題は、例えば String.match を使った場合に、Firefox 32、33 上で「応答のないスクリプト」ダイアログを表示させる可能性がありました。

参考資料