如何查找换行符并替换为<;br>;JavaScript中的元素?
我正在尝试使用javascript查找和替换文本中的换行符 下面的工作。它将字符a替换为字符z如何查找换行符并替换为<;br>;JavaScript中的元素?,javascript,search,line,break,Javascript,Search,Line,Break,我正在尝试使用javascript查找和替换文本中的换行符 下面的工作。它将字符a替换为字符z var text = "aasdfasdf"; text= text.replace(/a/g,"z"); alert(text); 以下基于此留言板和其他留言板上的其他帖子不适用。基本上javascript不会启动: var text = "aasdfasdf"; text= text.replace(/\n/g,"z"); alert(text); …这是许多建议它应该起作用的帖子之一 顺便
var text = "aasdfasdf";
text= text.replace(/a/g,"z");
alert(text);
以下基于此留言板和其他留言板上的其他帖子不适用。基本上javascript不会启动:
var text = "aasdfasdf";
text= text.replace(/\n/g,"z");
alert(text);
…这是许多建议它应该起作用的帖子之一
顺便说一句,以下内容在Firefox中也不适用:
text = text.replace(/\n\r?/g, '<br />'); or
text = text.replace("\n", '<br />');
text=text.replace(/\n\r?/g,
);或
text=text.replace(“\n”和“
”);
注意:我意识到文本变量中没有换行符。我只是使用一个简单的字符串进行测试
有没有人能看出什么地方出了问题,或者告诉我一种实际可行的方法
谢谢 我会通过处理
\r\n
(序列),然后通过字符类处理\r
和\n
来覆盖我的赌注,如下所示:
text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />');
text=text.replace(/\r\n/g,
')。replace(/[\r\n]/g,
');
第一次替换将序列\r\n
转换为
。第二个替换将自己找到的任何\r
或\n
字符替换为字符串
有关JavaScript中正则表达式的详细信息。要处理windows新行字符,请尝试
text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />');
text=text.replace(/\r\n/g,
')。replace(/[\r\n]/g,
');
ECMAScript将字符串中的换行符规范化为“\n\r”,DOM将字符串中的换行符规范化为“\n”。这两种操作系统都不可知这些格式:
- Windows-CRLF
- Unix-LF
- 旧Mac-CR
完成此任务的正确方法取决于您如何接收字符串以及如何将其写出。这两种行尾类型的另一种解决方案
str.replace(new RegExp('\r?\n','g'), '<br />');
str.replace(新的RegExp('\r?\n','g'),'
');
在Windows上,换行符是\r\n
,使用正则表达式,您将获得
…此脚本不是为我启动的。。。有些东西在破坏代码。@Samuelcailerie:实际上,在Windows上,断行是\r\n
还是\n
取决于您使用的浏览器。(奇怪,但确实如此。)但你说得很对,至少在某些浏览器上,它们仍然是\r\n
。我已经更新了。@user1260310:那么,您必须提供一个问题的示例,以及一个比“未触发”更具描述性的错误,不管它是什么意思。在这个JSFIDLE中,它可以正常工作。我的代码中肯定有其他错误,但我无法找出它。您能建议一种在javascript中捕获和报告错误的方法吗。我通常使用警报来查看发生了什么…当我说“没有开火”时,我的意思是没有警报“hello\nworld”。替换(/\r?\n/g,”)===“hello world”
。。。我看不出有什么问题。转义字符ie \似乎正在破坏它。非常令人沮丧。可能是重复的