JavaScript 文字列エスケープ
JavaScript の文字列リテラル("…"、'…'、`…`)用に、\n、\t、\" や任意の非 ASCII 用 \uXXXX でテキストをエスケープし、JS の文字列をテキストに戻します。
36 文字 · 40 バイト(UTF-8)
0 文字 · 0 バイト(UTF-8)
すべてブラウザ内で実行されます。データがアップロードされることはありません。
JavaScript エスケープとは?
任意のテキストを、選んだ引用符のスタイルで有効な JavaScript 文字列リテラル の内容に変換し、エスケープされた JS の文字列をプレーンテキストに戻します。
JavaScript エスケープの使い方
- エスケープ または アンエスケープ を選びます。
- エスケープする場合は 文字列の区切り(ダブル、シングル、テンプレートリテラル)と、必要に応じて 非 ASCII を \uXXXX でエスケープ を選びます。
- 入力 にテキストを貼り付け、引用符の間に入れる 出力 をコピーします。
例
Path: C:\temp "new"
Path: C:\\temp \"new\"
ダブルクォートを区切りにした場合です。
JavaScript エスケープを使うべき場面
テキスト、テンプレート、JSON のようなデータを JavaScript や TypeScript のソースに直接書くときに使います。データを HTML の <script> タグに埋め込む場合は、</script> が現れないことも確認してください。JSON のデータには、JSON.stringify か、エスケープ/アンエスケープツールの JSON 形式を使ってください。
JavaScript エスケープの仕組み
エスケープでは、バックスラッシュ、改行、復帰、タブ、バックスペース、改ページ、垂直タブが \\ \n \r \t \b \f \v に置き換えられます。選んだ引用符の文字にはバックスラッシュが付き(テンプレートリテラルでは ${ も)、その他の制御文字は \xHH になり、U+2028/U+2029 は古いパーサーを壊すため常にエスケープされます。非 ASCII のオプションでは、U+007E を超えるすべての文字が \uXXXX になります(絵文字ではサロゲートペア)。アンエスケープでは、\u{…}、\xHH、旧来の 8 進数、行継続を含むすべての JS のエスケープを理解します。
一般的な使用例
- 複数行のテキストを JS の文字列定数に貼り付ける
- コード生成ツール用に文字列内の引用符をエスケープする
- \u エスケープで ASCII のみのソースファイルを作る
- ミニファイされたコードやログのエスケープされた文字列を読む
よくある質問
どの引用符がエスケープされますか?
区切りとして選んだものだけです(テンプレートモードではバッククォートと ${ も)。出力が読みやすいまま保たれます。
U+2028 と U+2029 がエスケープされるのはなぜですか?
ES2019 より前は文字列リテラル内で行終端として扱われ、古いエンジンではコードを壊すことがありました。
出力は有効な JSON ですか?
常にそうとは限りません。JSON では \x、\v、シングルクォートの文字列は使えません。JSON には、エスケープ/アンエスケープツールの JSON 形式を使ってください。