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

How to print literal representation of a string in 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.raw or JSON.stringify(取决于您的需要)

这也适用于浏览器

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

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