JS 在字符串中显示特殊的 ascii 字符

JS show special ascii characters in a string

有没有办法制作这个字符串:

foo
    bar

显示如下:

foo\r\n\tbar

这对调试词法分析器很有帮助。

关键是在字符串替换中转义\n

let specialCharacters = [
    {regex: /\n/g, replacement: '\n'},
    {regex: /\t/g, replacement: '\t'}
];

function escapeSpecialCharacters(str){
  specialCharacters.forEach(c => {
    str = str.replace(c.regex, c.replacement);
  });
  return str;
}

console.log(escapeSpecialCharacters(`test
test
test
1234`));

如果只想调试,可以在浏览器控制台中显示所有转义字符,但将字符串放入数组中:

let string = "test\ntest";

let arr = [];

arr.push(string);

console.log(arr);

但这不会以任何方式改变你的字符串,它仍然包含新行,而不是“\n”。