【问题标题】:Displaying control characters in Chrome's console?在 Chrome 的控制台中显示控制字符?
【发布时间】:2012-09-29 08:29:01
【问题描述】:

有没有办法强制 Chrome 的 JS 控制台像 Firefox 一样显示换行符?

铬:

火狐:

可能是某个地方的隐藏开关?

【问题讨论】:

  • 我想像x.replace(/\n/g,"\\n") 这样的东西是不可能的? (或者使用FF,默认情况下它似乎可以做你想要的。)
  • @nnnnnn:这就是我试图在 Chrome 中模拟的行为。不过,似乎任何地方都没有隐藏开关。
  • 是的,我想。我猜最坏的情况是,如果您需要复制粘贴值或其他内容,您可以根据我之前的评论手动输入 .replace() 语句,或者定义一个函数来执行此操作,这样您就不必每次都输入它。 (笨重?是的,我承认。)
  • 你能告诉我们如何在Firefox中显示这些字符吗?我在这个问题上待了 20 分钟,但我无法通过谷歌搜索得到这个问题的好答案
  • @JoãoPimentelFerreira:Firefox 从 23.0 开始停止显示这样的字符串。

标签: javascript google-chrome console


【解决方案1】:

你可以试试这个方法

var x = 'a\\nb';

编辑:

您可以在字符串中使用十六进制字符。

\ = '\u005C'
> var x = 'a\u005Cnb';
> x
<- "a\nb"
> x === "a\nb" is false.
> x === "a\\nb" is true or x === 'a\u005Cnb' is true.

你可以看看链接。

http://mathiasbynens.be/notes/javascript-escapes http://code.cside.com/3rdpage/us/javaUnicode/converter.html

【讨论】:

  • 但是x !== 'a\nb'。我只是想改变控制台显示 x 的方式,而不是x 本身。 Firefox 的内置控制台将控制字符(如 \n)显示为 literally \n。 Chrome 将它们呈现为实际的换行符。
  • 我已经编辑了我的问题并添加了屏幕截图。这应该可以消除混乱。
【解决方案2】:

你可以使用encodeURI来显示隐藏的东西。

类似encodeURI("a\nb") 而不是"a\nb"。

【讨论】:

    【解决方案3】:

    在 node.js 中,require("util").inspect 做了非常相似的事情。我还没有找到等效的浏览器,但幸运的是 node.js implementation 相当简单:

    JSON.stringify(value)
        .replace(/^"|"$/g, '')
        .replace(/'/g, "\\'")
        .replace(/\\"/g, '"')
    ;
    

    在您的情况下,只需 JSON.stringify(value) 即可。

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      您可以将值字符串化以获取这些不可见字符:

      > JSON.stringify("a\nb")
      <- ""a\nb""
      

      【讨论】:

        猜你喜欢
        • 2020-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-13
        • 2011-10-26
        • 2013-12-11
        • 1970-01-01
        相关资源
        最近更新 更多