什么字符代表文本区域中的新行

速度很快,但要确保我能适应跨平台的变化。

我喜欢将在文本区域中输入的新行转换为[逗号],以便可以将输出表示为一行,这是我的问题...

目前,从谷歌浏览器发送,当我查看该值时,发现它用于\r\n换行。如果替换,\r\n我知道它将在Windows 7上适用于chrome,但其他平台又如何,其他浏览器将作为新行插入文本区域是否有所不同?


慕妹3242003
浏览 556回答 3
3回答

撒科打诨

根据HTML规范,要求浏览器规范用户输入CR LF(\r\n)中的换行符,而且我认为任何浏览器都不会出错。参考:条款17.13.4 HTML 4.01规范中的表单内容类型。在HTML5草案中,情况更为复杂,因为它们还处理浏览器内部的进程,而不仅仅是处理提交表单时发送到服务器端表单处理程序的数据。根据他们(和浏览器的实践),textarea元素值存在三种变体:用户输入的未标准化的原始值;它可能包含CR,LF或CR LF对;内部值,称为“ API值”,其中将换行符标准化为LF(仅);提交值,其中根据Internet约定将换行符标准化为CR LF对。

幕布斯6054654

根据HTML5规范,看来textarea元素的value属性应该为换行符返回'\ r \ n':使用以下转换将元素的值定义为元素的原始值:替换每次出现的“ CR”(U + 000D)字符,然后替换为“ LF”(U + 000A)字符,以及每次出现的“ LF”(U + 000A)字符,但不替换“ CR”( U + 000D)字符,由两个字符组成的字符串,由U + 000D的CARRIAGE RETURN“ CRLF”(U + 000A)字符对组成。通过链接到“值”,可以清楚地看到它引用了在javascript中访问的value属性:表单控件具有一个值和一个检查项。(后者仅由输入元素使用。)这些元素用于描述用户如何与控件进行交互。但是,在所有五种主要浏览器(使用Windows,2015年11月27日)中,如果将'\ r \ n'写入文本区域,则会删除'\ r'。(要进行测试:var e = document.createElement('textarea'); e.value ='\ r \ n'; alert(e.value =='\ n');)从v9开始,这对于IE就是如此。在此之前,IE返回“ \ r \ n”并将“ \ r”和“ \ n”都转换为“ \ r \ n”(这是HTML5规范)。所以...我很困惑。为了安全起见,通常在正则表达式中使用'\ r?\ n'而不是仅使用'\ n'就足够了,但是如果必须知道换行符序列,则可以在应用程序中执行上述测试。
打开App,查看更多内容
随时随地看视频慕课网APP