Javascript 用unicode替换\n以正确显示html中的新行

Javascript 用unicode替换\n以正确显示html中的新行,javascript,html,unicode,Javascript,Html,Unicode,我有一个多行字符串: let str = 'line first \n line-second-preceded-with-a-few-spaces'; 我想把它注入HTML代码中。我设法用replace(//g,'\u00a0')替换了所有空格,我也想用\n替换所有空格,但中提到的Unicode值似乎都不起作用 Unicode标准定义了许多符合 应用程序应识别为线路终端: LF: Line Feed, U+000A VT: Vertical Tab, U+000B FF:

我有一个多行字符串:

let str = 'line first \n     line-second-preceded-with-a-few-spaces';
我想把它注入HTML代码中。我设法用
replace(//g,'\u00a0')
替换了所有空格,我也想用
\n
替换所有空格,但中提到的Unicode值似乎都不起作用

Unicode标准定义了许多符合 应用程序应识别为线路终端:

LF:    Line Feed, U+000A
VT:    Vertical Tab, U+000B
FF:    Form Feed, U+000C
CR:    Carriage Return, U+000D
CR+LF: CR (U+000D) followed by LF (U+000A)
NEL:   Next Line, U+0085
LS:    Line Separator, U+2028
PS:    Paragraph Separator, U+2029

正确的方法是什么?

您可以将
\n
替换为换行

,然后添加为
innerHTML
,如

let str='line first\n line-second-prefored-with-a-now-spaces';
str=str.replace(//g,'\u00a0');
str=str.split(“\n”).join(
) document.getElementById(“d”).innerHTML=str
另一种选择是将
\n
替换为换行Unicode字符,并将整个文本放在
标记中。但是为什么标记会更改背景色呢?o、 默认情况下,浏览器将使用单间距(或固定宽度)字体(如Courier或Monaco)在pre元素内显示内容。
pre
元素应用于具有影响内容含义的排版格式的文本,例如诗歌、ASCII艺术、抄本,当然还有,计算机代码。只需使用CSS
空白:pre-wrap
,无需使用unicode胡说八道。。。特别是当你使用非破坏性空间时,这根本不是一回事。谢谢你,Niet the Dark Absol,简单而完美!
{str.replace(/ /g, '\u00a0').replace(/(?:\r\n|\r|\n)/g, '\u000a')}