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')}