Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since May 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
RegExp.escape() は静的メソッドで、文字列内の潜在的な正規表現構文文字をエスケープし、リテラルパターンとして RegExp() コンストラクターで安全に使用できる新しい文字列を返します。
ユーザーが提供したコンテンツを含む RegExp を動的に作成する場合は、この関数を使用して入力を無害化することを検討してください(入力が実際に正規表現構文を含むように意図されている場合を除く)。また、例えば、 String.prototype.replaceAll() を使用して、すべての構文文字の前に \ を挿入するなどして、その機能を再実装しようとしないでください。 RegExp.escape() は、手作業で作成したコードではおそらく達成できないであろう、複数のエッジケース/コンテキストで動作するエスケープシーケンスを使用するように設計されています。
エスケープする文字列です。
RegExp() コンストラクターのリテラルパターンとして安全に使用できる新しい文字列。すなわち、入力文字列内の次の置き換えが行われます。
string が文字列ではない場合に発生します。
次の例は、RegExp.escape() メソッドのさまざまな入力と出力を示しています。
RegExp.escape() の主な使用例は、文字列をより大きな正規表現パターンに埋め込み、その文字列が正規表現の構文ではなくリテラルパターンとして確実に保持したい場合です。URL を置換する次の単純な例を考えてみましょう。
上記の domain を挿入すると、正規表現リテラル https?://developer.mozilla.org(?=/) となります。ここで、 "." 文字は正規表現のワイルドカード文字です。これは、文字列が "." の代わりに何か文字を持つ文字列と一致することを意味しており、例えば、 developer-mozilla-org などが該当します。したがって、次のテキストも誤って変更されてしまいます。
これを修正するには、 RegExp.escape() を使用して、ユーザー入力が確実にリテラルパターンとして扱われるようにします。
これでこの関数は意図通りに動作し、 developer-mozilla.org の URL を変換しなくなります。
| ECMAScript® 2027 Language Specification # sec-regexp.escape |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年11月10日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.