JavaScript 文字列エスケープ

JavaScript の文字列リテラル("…"、'…'、`…`)用に、\n、\t、\" や任意の非 ASCII 用 \uXXXX でテキストをエスケープし、JS の文字列をテキストに戻します。

36 文字 · 40 バイト(UTF-8)

0 文字 · 0 バイト(UTF-8)

すべてブラウザ内で実行されます。データがアップロードされることはありません。

JavaScript エスケープとは?

任意のテキストを、選んだ引用符のスタイルで有効な JavaScript 文字列リテラル の内容に変換し、エスケープされた JS の文字列をプレーンテキストに戻します。

JavaScript エスケープの使い方

  1. エスケープ または アンエスケープ を選びます。
  2. エスケープする場合は 文字列の区切り(ダブル、シングル、テンプレートリテラル)と、必要に応じて 非 ASCII を \uXXXX でエスケープ を選びます。
  3. 入力 にテキストを貼り付け、引用符の間に入れる 出力 をコピーします。

例

入力
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 形式を使ってください。

おすすめの次のステップ

他のカテゴリを見る