将线路端更换为线路端+;双引号javascript

将线路端更换为线路端+;双引号javascript,javascript,replace,Javascript,Replace,我开始做一些看起来很简单的事情,但结果却不一样 我从文件中读取以下字符串: "columns:[ { allowNull:false, 我想用换行符和双引号替换换行符 因此,我: text = text.replace(/\r?\n/g, '\n"') 不知怎的,输出是这样的: "columns:[ \"{ \"allowNull:false, 我完全不知道额外的“\”是从哪里来的。如果我使用单引号或其他字符,它就可以正常工作 这里发生了什么事?在这里 text = text.replac

我开始做一些看起来很简单的事情,但结果却不一样

我从文件中读取以下字符串:

"columns:[
{
allowNull:false,
我想用换行符和双引号替换换行符

因此,我:

text = text.replace(/\r?\n/g, '\n"')
不知怎的,输出是这样的:

"columns:[
\"{
\"allowNull:false,
我完全不知道额外的“\”是从哪里来的。如果我使用单引号或其他字符,它就可以正常工作

这里发生了什么事?

在这里

text = text.replace(/\r?\n/g, '\n"')
替换为
\n“
,而不是
\n
。正如@vlaz在注释中正确指出的那样,
文本。替换
不会从
转义到
\”
。但是
打印
功能会转义


无论如何,有一个
可能不是故意的。

,该代码不会生成带有反斜杠的字符串。我猜您是在一个以双引号显示字符串的环境中看到这一点的,并且它显示了
\”
其中的
位于字符串中,因为这是在双引号字符串文字中执行此操作的方式。@Sjakelien,您是否希望最终字符串为-columns:[\n“{\n”allowNull:false?堆栈溢出是一个非常活跃的位置。当您发布问题(或答案)时,请留下来,以便您能够及时回复评论、编辑或删除问题等。@T.J.Crowder抱歉,我是一个活跃的人,但不仅如此。从正面来看:似乎您是对的。这是我的IDE试图告诉我发生了什么。当打印到控制台时,斜杠没有了,它
replace()
不会转义引号,但打印字符串会转义引号。