Javascript 如何在节点js中使用\n转换文本并添加不带字符的实际新行?

Javascript 如何在节点js中使用\n转换文本并添加不带字符的实际新行?,javascript,node.js,text,Javascript,Node.js,Text,我有这样的文本响应,我想删除特殊字符\n并使其成为真正的新行 具有特殊性质的第一反应 -----BEGIN MESSAGE-----\n v1.60\n\nhQEMAwPgeMJUXSL5Bps+U3lC8tnc\nD8s2Aeb7UtryIRABy/U2PCENdNKH5Jm+CI1CO\n/BBlzx77Z4YGNVfh2G+d62\nln0OjxCcTHbbTM/1XjNYqRTzWZInIVAvGzKgw/V+8f2b0NM4M9kPJRy65uov42Iv\n125RWFv/uaCtg

我有这样的文本响应,我想删除特殊字符\n并使其成为真正的新行

具有特殊性质的第一反应

-----BEGIN MESSAGE-----\n v1.60\n\nhQEMAwPgeMJUXSL5Bps+U3lC8tnc\nD8s2Aeb7UtryIRABy/U2PCENdNKH5Jm+CI1CO\n/BBlzx77Z4YGNVfh2G+d62\nln0OjxCcTHbbTM/1XjNYqRTzWZInIVAvGzKgw/V+8f2b0NM4M9kPJRy65uov42Iv\n125RWFv/uaCtgY2XHzk=\n=Xyt6\n-----END MESSAGE-----\n
其实我想做出这样的回应,

-----BEGIN MESSAGE-----

By+ZEGhZCB8kWnIxOlgFrvABtc3n5AzHteDk9WJ4vIrr52T5tTlQntAFpm6P
8Ars0HETgvE7klIxFSrSXy4D350gn3TwJywhR3Go0WxujNRhi8MhXMRYmg/o
8Ars0HETgvE7klIxFSrSXy4D350gn3TwJywhR3Go0WxujNRhi8MhXMRYmg/o
8Ars0HETgvE7klIxFSrSXy4D350gn3TwJywhR3Go0WxujNRhi8MhXMRYmg/o
8Ars0HETgvE7klIxFSrSXy4D350gn3TwJywhR3Go0WxujNRhi8MhXMRYmg/o
8Ars0HETgvE7klIxFSrSXy4D350gn3TwJywhR3Go0WxujNRhi8MhXMRYmg/o
=SEl/

-----END PGP MESSAGE-----
这是两个不同的字符串,但我使用它作为示例


没有特殊字符,如何实现将响应转换为节点js中的第二个响应。

像这样?不需要任何处理

在节点中

const str=`BEGIN MESSAGE-----\n v1.60\n\nhQEMAwPgeMJUXSL5Bps+U3lC8tnc\nD8s2Aeb7UtryIRABy/U2PCENdNKH5Jm+CI1CO\n/bblzx77z4ygnvhfh2g+d62\nln0ojjxcthbtm/1xjnyqrzwzinivgzkgw/V+8f2b0NM4M9kPJRy65uov42Iv\n125RWFv/uact2xhzk=\n=Xyt6\n结束MESSAGE-----\n`

console.log(str)
假设您的字符串包含转义序列
\n
,并且您不仅仅是在谈论JavaScript源代码

// I've escaped the \ so that the string contains \n instead of an actual new line
const myString = "This is a string\\nwith a slash n in it";
然后你可以做一个简单的替换:

const unEscaped = myString.replace(/\\n/g, "\n");
process.stdout.write(unEscaped);
尽管如此,如果数据中有其他JS序列,那么将其作为JSON处理可能会更好:

const parsed = JSON.parse(myString);
process.stdout.write(parsed);


如果您谈论的是源代码,那么问题在于如何检查字符串,而不是字符串本身。你没有说你在做什么,但是如果让我猜猜的话,我会说“使用
process.stdout.write()
而不是
console.log()

,我想你的操作系统是Windows

在windows for new line中,您必须使用\r\n而不仅仅是\r\n

但我认为\n没有问题,您必须尝试在支持非Windows换行符的编辑器中打开文件(例如写字板)

如果要替换它,请尝试:

str.replace(/\\n/g, \r\n);

这两个字符串在这里有什么共同点?\n表示新行,实际上我希望以纯文本形式响应,新行字面上没有特殊字符\n然后将
\\n
替换为
\n
。它们实际上是不同的字符串,我只想获得与第二个字符串一样的结果,新行字面上没有特殊字符Ter我应该在node js中做什么?文档有效吗?我已经编辑了这个问题,它在NodeJs just console.log(str)中是一个问题,并且没有文档在NodeJs中无效。我认为这不能解决问题。我认为OP的字符串已经转义了新行字符(
\\n
不是
\n
).我想我比你快了。这就是我写了一个更全面的答案所得到的。我投票支持你:)