我正在尝试使用javascript在文本中查找和替换换行符。
以下作品。它用字符z替换字符a。
var text = "aasdfasdf";
text= text.replace(/a/g,"z");
alert(text);
以下基于此消息板和其他留言板上的其他帖子没有。基本上javascript不会触发:
var text = "aasdfasdf";
text= text.replace(/\n/g,"z");
alert(text);
...以下是许多帖子中的一篇,表明它应该有效。
JavaScript: How to add line breaks to an HTML textarea?
以下的方式对我来说在Firefox中不起作用:
text = text.replace(/\n\r?/g, '<br />'); or
text = text.replace("\n", '<br />');
注意:我意识到文本变量中没有换行符。我只是使用一个简单的字符串进行测试。
任何人都可以看到可能出现的问题,或者告诉我一种实际可行的方法。
感谢。
答案 0 :(得分:11)
我会通过处理\r\n
(序列),然后通过字符类处理\r
和\n
来覆盖我的赌注,如下所示:
text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />');
第一次替换将序列\r\n
转换为<br />
。第二个替换用字符串替换自己找到的任何\r
或\n
个字符。
有关JavaScript here中正则表达式的更多信息。
答案 1 :(得分:1)
ECMAScript将字符串中的换行符规范化为“\ n \ r”,并且DOM将字符串中的换行符规范化为“\ n”。两种操作系统无关,这些格式:
完成此任务的正确方法取决于您如何接收字符串以及如何将其写出来。
答案 2 :(得分:0)
要处理Windows新行字符,请尝试
text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />');
答案 3 :(得分:0)
两种类型的行结尾的另一种解决方案
str.replace(new RegExp('\r?\n','g'), '<br />');