Javascript-如何在字符串中显示转义字符?

这个问题很简单,但是不知道为什么,我在谷歌上搜索了10分钟,到处都找不到答案。在 Javascript 中打印时如何显示转义字符?

例如:

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

给予:

Hello
World

当我想要它给予的时候:

Hello\nWorld
156595 次浏览

你必须避免使用反斜杠,所以试试这个:

str = "Hello\\nWorld";

这里 是 Javascript 中更多的转义字符。

如果你的目标是

str = "Hello\nWorld";

并以字符串的形式输出它所包含的内容,您可以使用 JSON.stringify:

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

const str = "Hello\nWorld";
const json = JSON.stringify(str);
console.log(json); // ""Hello\nWorld""
for (let i = 0; i < json.length; ++i) {
console.log(`${i}: ${json.charAt(i)} (0x${json.charCodeAt(i).toString(16).toUpperCase().padStart(4, "0")})`);
}
.as-console-wrapper {
max-height: 100% !important;
}

console.log添加了外部引号(至少在 Chrome 的实现中是这样) ,但其中的内容是字符串文字(是的,这有点让人困惑)。

JSON.stringify接受您提供的内容(在本例中是一个字符串) ,并返回一个包含该值的有效 JSON 的字符串。因此,对于上面的代码,它返回一个开始引号(")、单词 Hello、反斜杠(\)、字母 n、单词 World和结束引号(")。字符串中的 linefeed 在输出中转义为 \n,因为这是在 JSON 中编码 linefeed 的方式。其他转义序列也是类似的编码。

JavaScript 使用(反斜杠)作为转义字符:

  • 单引号
  • 双引号
  • 反斜杠
  • 新线路
  • 马车回程
  • T Tab
  • 后退空间
  • 形式饲料
  • V 垂直选项卡(IE < 9将’v’视为’v’而不是垂直选项卡(’x0B’))。如果需要考虑跨浏览器兼容性,请使用 x0B 而不是 v)
  • 0空字符(U + 0000 NULL)(只有当下一个字符不是十进制数字时,否则为八进制转义序列)

注意,在 JSON 字符串中不允许 v 和0转义。