javascript \nをエスケープせずに文字列として扱う

javascript \nをエスケープせずに文字列として扱う

javascriptで、String.rawを用いて\nをエスケープせずに文字列として扱うサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.134

String.raw使い方

String.rawを使用すると、エスケープせずに\nを文字列として扱うことが可能です。

// 通常
let str1 = 'hello\nworld';

// エスケープする
let str2 = 'hello\\nworld';

// String.rawを使用する
let str3 = String.raw`hello\nworld`;

console.log(str1);
console.log(str2);
console.log(str3);

実行結果

String.rawを使用すると、以下の全てを文字列として扱うことができます。

let str = String.raw`!"#$%&\n\r\s\b`;
console.log(str);

実行結果

ただし、最後に「 \ 」があるとエラーとなります。

let str = String.raw`\var\www\`;

console.log(str);

chrome 103.0.5060.134

Uncaught SyntaxError: Unexpected end of input

firefox 102では、以下のエラーが発生します。

Uncaught SyntaxError: `` literal not terminated before end of script

なので、最後に「\」がある場合は、以下のようにする必要があります。

let str = String.raw`\var\www` + '\\';
console.log(str);

実行結果