JavaScript将\n替换为<;br/>;

JavaScript将\n替换为<;br/>;,javascript,regex,replace,Javascript,Regex,Replace,此警报: Line 1 Line 2 Line 3 第1行 第2行 第3行 当我期望它发出警报时: Line 1<br /> Line 2 Line 3 第1行第2行 您需要/g 替换(/\n/g,) 这适用于我的\n-请查看您是否有\r\n 注:是对\r\n、\r或\n var messagetoSend=document.getElementById('x').value.replace(/\n/g,“”); console.log(message

此警报:

Line 1


Line 2




Line 3
第1行
第2行 第3行
当我期望它发出警报时:

Line 1<br />


Line 2




Line 3
第1行



第2行







您需要/g

替换(/\n/g,

这适用于我的
\n
-请查看您是否有
\r\n

注:是对
\r\n
\r
\n

var messagetoSend=document.getElementById('x').value.replace(/\n/g,“
”); console.log(messagetoSend)

第1行
第2行
第3行

使用正则表达式。替换()


处理任意类型的换行符

messagetoSend = messagetoSend.replace(/\r\n/g, "<br />");
str.replace(新的RegExp('\r?\n','g'),'
');
我把它改成了这个,它似乎不起作用。它不能代替任何东西。@Tom:可能是windows断线了?我更新了代码,并尝试使用回车符。它是\n而不是\\n-我想我的答案已经解决了这个问题\r可以忽略-浏览器willI将其更改为此,它似乎不起作用。它没有替换任何东西。“g”一个仍然只添加一个
regexp一个不做任何事情不知道为什么,但对我来说
replace(/\\n/g,“
”)起作用。我有点困惑/这是新行的文本表示。这是纯JS还是php中的字符串,还是.NET ASPX中带有jQuery的类似名称问题?.replace(/\\r\\n/g,“
”)解决了这个问题;我用了这个答案!谢谢。这是最好的答案,非常感谢@wskinner这解决了整个问题,因为以前的每一行都以某种方式替换了我的最后一个字符。如果没有
\n
,则不会处理
\r
。如果字符串是html而不是纯文本,请将其样式设置为\n导致换行,
空白:pre否则您将最终损坏包含\n的实体,如果它实际上是文本,恭喜您现在拥有一个XSS vuln。
Line 1<br /><br /><br />Line 2<br /><br /><br /><br /><br />Line 3
messagetoSend = messagetoSend.replace(/\n/g, "<br />");
messagetoSend = messagetoSend.replace(/\r\n/g, "<br />");
str.replace(new RegExp('\r?\n','g'), '<br />');