IE浏览器的javascript中的换行符总是\ r \ n?

时间:2011-07-01 18:26:47

标签: javascript html encoding

如果我得到一个内部有<BR \>的元素,并使用innerText属性获取它的文本,我会看到换行符是两个字符:13和10.是什么决定了这一点?它是浏览器还是网页的编码?

我想要确保换行符始终是这两个字符(只要它是网页静态内容的一部分而不是动态创建的内容)或修改我的文本处理算法来处理这两种可能性。

我将使用split方法将文本拆分为行。我不确定是否应该使用split("\r\n")或更复杂的代码。

4 个答案:

答案 0 :(得分:6)

split(/\r\n?|\n/g)

应该处理UNIX换行符,windows换行符和旧式Mac换行符。

unicode还有一些其他字符被视为换行符,但这些额外字符不太可能用于替换HTML <br>中的innerText

13对应\r,称为CR或回车。 10对应于\n,称为LF或换行。 两个“\ r \ n”的组合称为CRLF行分隔符。

其中一些被认为是其他网络语言中的行终止符。例如。 U + 2028和U + 2029是JavaScript中的行终止符,U + 000C被认为是CSS中的行终止符。

答案 1 :(得分:3)

这取决于您的编辑器和/或操作系统。 Windows使用\ r(13)\ n(10)。 Unix系统只使用\ n。旧的mac使用\ r \ n。 你可以只用\ n替换所有\ r \ n,然后在\ n上拆分。所以

//"test\r\nnewline".replace('\r\n','\n').split('\n')//only replaces the first newline
"test\r\nnewline".replace(/\r\n/g, '\n').split('\n')

答案 2 :(得分:0)

它通常依赖于操作系统。 Windows是\ r \ n,\ r是针对Mac而\ n是针对Linux

答案 3 :(得分:0)

text.split(/ \ S * \ N + /)

在换行符上拆分文字。 在换行符之前移除任何空白字符总是安全的, 但不是之后。