簡體   English   中英

如何使用 \n 轉換文本並在 node.js 中添加沒有字符的真正新行?

[英]How to Convert text with \n and add real new line without character in node js?

我有這樣的文本響應,我想刪除特殊字符 \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-----

這是兩個不同的字符串,但我以此為例。

沒有特殊字符,如何實現將響應轉換為類似於 node.js 中的第二個響應。

像這樣? 無需任何處理

在節點中

 const str = `-----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` console.log(str)

如果逃脫

 const str = `-----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` console.log(str.replace(/\\n/g,"\n"))

假設您的字符串包含轉義序列\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 中換行你必須使用 \r\n 而不僅僅是 \n。

但我認為 \n 很好,您必須嘗試在支持非 Windows 換行符(例如寫字板)的編輯器中打開您的文件。

如果你想更換它試試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM