web-dev-qa-db-ja.com

Javascript-文字列にエスケープ文字を表示する方法は?

非常に簡単な質問ですが、何らかの理由で、Googleで10分間検索しても答えが見つからない場合があります。 Javascriptで印刷するときにエスケープ文字を表示するにはどうすればよいですか?

例:

str = "Hello\nWorld";
console.log(str);

与える:

Hello
World

与えたいとき:

Hello\nWorld
43
Jazcash

あなたの目標が

str = "Hello\nWorld";

含まれているものを文字列リテラル形式で出力するには、JSON.stringifyを使用できます。

console.log(JSON.stringify(str)); // ""Hello\nworld""

console.logは(少なくともChromeの実装では)外側の引用符を追加しますが、その中のコンテンツは文字列リテラルです(はい、それはやや紛らわしいです)。

JSON.stringifyは、指定されたもの(この場合は文字列)を受け取り、その値に有効なJSONを含む文字列を返します。したがって、上記の場合、開始引用符(")、Word Hello、バックスラッシュ(\)、文字n、Word World、および終了引用符(" )。文字列の改行は、\およびnとして出力でエスケープされます。これは、JSONで改行をエンコードする方法だからです。他のエスケープシーケンスも同様にエンコードされます。

74
T.J. Crowder

JavaScriptは、次のエスケープ文字として\(バックスラッシュ)を使用します。

  • \ '一重引用符
  • \ "二重引用符
  • \バックスラッシュ
  • \ n改行
  • \ rキャリッジリターン
  • \ tタブ
  • \ bバックスペース
  • \ fフォームフィード
  • \ v垂直タブ(IE <9は、 '\ v'を垂直タブ( '\ x0B')ではなく 'v'として扱います。ブラウザ間の互換性が懸念される場合は、\ vではなく\ x0Bを使用します。)
  • \ 0 null文字(U + 0000 NULL)(次の文字が10進数でない場合のみ。それ以外の場合は8進数のエスケープシーケンスです)

\ vおよび\ 0エスケープはJSON文字列では許可されないことに注意してください。

21
PoppinL

バックスラッシュをエスケープする必要があるので、これを試してください:

str = "Hello\\nWorld";

ここ はJavaScriptのエスケープ文字です。

19
philshem