【问题标题】:JS show special ascii characters in a stringJS 在字符串中显示特殊的 ascii 字符
【发布时间】:2018-12-07 21:41:48
【问题描述】:

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

foo
    bar

看起来像这样:

foo\r\n\tbar

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

【问题讨论】:

标签: javascript node.js string ascii special-characters


【解决方案1】:

关键是在字符串替换中转义\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`));

【讨论】:

  • 对,对,但是有没有办法只显示所有特殊字符而无需手动替换每个字符?
  • 它们的数量是有限的,甚至没有那么大,除非您计算 Unicode 符号。
  • 据我所知,“特殊字符”不是一些具有众所周知定义的规范字符类。为什么不列出您关心的所有特殊字符.. 我认为这样会更容易。
  • 在那里,我添加了一些方法,让您可以使用更多特殊字符来扩展我的解决方案。另外,我已经修复了我的解决方案,以便它替换 all 出现的特殊字符。以前,它只替换第一次出现。
【解决方案2】:

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

let string = "test\ntest";

let arr = [];

arr.push(string);

console.log(arr);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2017-03-16
    • 2016-02-29
    相关资源
    最近更新 更多