console.log剥离回车

时间:2012-11-27 17:23:03

标签: javascript firebug google-chrome-devtools

我正在尝试编写一个JavaScript函数,通过console.log将字符串输出到控制台。但是,该字符串中包含回车符,它显示为文字↵字符而不是创建新行。这是console.log的限制,还是有办法解决这个问题?

谢谢!

编辑:我实际上是在尝试在对象中打印此函数。类似的东西:

function blah() {
};
console.log({ "function" : blah });

我最初并没有考虑提及它,但在尝试了crowjonah的解决方案之后,我意识到console.log显然将直接传递的字符串视为与另一个对象内传递的字符串不同。

4 个答案:

答案 0 :(得分:4)

在打印包含多行字符串的对象时,Chrome会将\n呈现为。但是,您只需双击已记录的字符串即可使用正确的换行符进行查看。

答案 1 :(得分:1)

这是控制台的限制。但你可以创建一个解决方法:

function multiLineLog(msg) {
    msg = msg.split(/[\r\n]+/g);
    for (var a=0; a < msg.length; a++) console.log(msg[a]);
}

答案 2 :(得分:1)

在日志消息中使用\n,无论您希望在哪里进行换行。

console.log('first line \nsecond line');

如果&#34;马车返回&#34;是html元素,比如<br>,你可以在字符串上运行替换来自动执行

var newLogMessage = multiLineLogMessage.replace('<br>', '\n');
console.log(newLogMessage);

答案 3 :(得分:0)

这是SReject's solution的修改版本:

const log = line => console.log(line);
const multiLineLog = msg => msg.split(/[\r\n]+/g).forEach(log);

const data = { a: { b: { c: null } } };

multiLineLog(JSON.stringify(data, null, 2));
.as-console-wrapper { top: 0; max-height: 100% !important; }