Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查找换行符并替换为<;br>;JavaScript中的元素?_Javascript_Search_Line_Break - Fatal编程技术网

如何查找换行符并替换为<;br>;JavaScript中的元素?

如何查找换行符并替换为<;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); …这是许多建议它应该起作用的帖子之一 顺便

我正在尝试使用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);
…这是许多建议它应该起作用的帖子之一

顺便说一句,以下内容在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 \似乎正在破坏它。非常令人沮丧。可能是重复的