如何在Node.js中打印字符串的文字表示形式?

问题描述

在我的程序中有一个REPL循环,有时需要在控制台上打印给定字符串变量的字符串表示形式。 例如,假设我们在程序中的某个位置定义了一个字符串变量 str

var str = "two\nlines";

我想拥有一个打印功能(例如,称为 printRepr ),该功能可以将str的字符串表示形式打印到控制台:

> printRepr(str);
"two\nlines"

我在文档中找不到这样的功能。有一种简单的方法来获得这种行为吗?

注意:我知道Node.js REPL具有此行为,但是我需要在程序中使用该函数来打印任何字符串的文字表示形式。当然,我不能使用 console.log(),因为在这种情况下,我会得到这个信息:

> console.log(str);
two
lines

解决方法

您可以使用util.inspect

const util = require('util');
const str = "two\nlines";
console.log(util.inspect(str));

根据您的需要,也可以使用String.rawJSON.stringify

这也将在浏览器中工作

console.log(String.raw`two\nlines`);

const str = `two\nlines`;
console.log(JSON.stringify(str))