正規表現エスケープ|RegExp.escape互換・一致テスト
文字列を正規表現でそのまま検索できる形へ変換。RegExp.escape互換と従来形式、パターン・JavaScriptリテラル・new RegExpコード、完全一致と動作テストに対応します。
空文字に一致するパターンです。
一致テスト
変換したパターンが、確認用テキスト内の入力文字列だけに一致するか試せます。
確認用テキストを入力すると一致件数を表示します。
方式の違い:RegExp.escape()互換では先頭英数字や空白、ハイフンなども16進エスケープになるため、結果が長く見えます。これは前後の正規表現構文と結合したときの誤解釈を防ぐ仕様です。入力が正規表現として意図された構文の場合は、このツールでエスケープしないでください。
このツールの使い方・詳細
🛠 使い方
💡 活用シーン・ユースケース
- URLやファイル名を正規表現の特殊記号として扱わず検索する
- ユーザー入力を動的なRegExpへ安全に埋め込む
- RegExp.escape互換結果と従来のメタ文字置換を比較する
RegExp.escape互換の正規表現エスケープ
URL、ファイル名、検索語などを正規表現の構文ではなく、そのままの文字列として検索できるパターンへ変換します。ECMAScript標準のRegExp.escape()と同じ規則を使う標準互換方式と、メタ文字だけを処理する従来方式を比較できます。
RegExp.escapeと単純な置換の違い
| 入力 | 標準互換の例 | 理由 |
|---|---|---|
foo.bar | \x66oo\.bar | 先頭文字とドットを安全にエスケープ |
foo-bar | \x66oo\x2dbar | Unicodeモードで不正になり得る\-を避ける |
| 半角空白 | \x20 | 空白を明示的な文字コードで表現 |
標準方式は、出力を後方参照や文字エスケープの直後へ埋め込む場合も、先頭文字が前の構文の一部として解釈されないよう設計されています。
変換規則はECMAScript言語仕様のRegExp.escapeに基づいています。利用環境ごとの対応状況はMDNのRegExp.escapeリファレンスで確認できます。
パターン・リテラル・new RegExpの使い分け
- パターン:APIや別言語へ貼る場合、または
RegExp()へ値として渡す場合に使います。 - 正規表現リテラル:JavaScriptソースへ
/.../uとして直接書く場合に使います。 - JavaScriptコード:文字列リテラルのバックスラッシュまで処理した
new RegExp()をそのままコピーできます。
「完全一致」と「含む検索」の違い
通常は長い文章の一部に入力文字列があれば一致します。「入力全体だけに一致」を有効にすると、先頭と末尾へアンカーを付け、確認用テキスト全体が入力文字列と同じ場合だけ一致します。大文字・小文字を無視する場合はiフラグを加えます。
入力内容は送信・保存されますか?
変換と一致テストはページ内のJavaScriptだけで実行します。入力文字列、確認用テキスト、変換結果を当サイトのサーバーへ送信・保存しません。