速度很快,但要确保我能适应跨平台的变化。
我喜欢将输入到文本区域的新行转换为[逗号],以便可以将输出表示为单行,这是我的问题...
目前,从谷歌浏览器发送,当我查看该值时,发现它用于\r\n
换行。如果替换,\r\n
我知道它将在Windows 7上适用于chrome,但其他平台又如何,其他浏览器将在文本区域内作为新行插入吗?
Answers:
the user agent should allow the user to edit, insert, and remove text, and to insert and remove line breaks in the form of "LF" (U+000A) characters
。
\n
)可能是“内部API”提供的。没有参考,这只是我基于常识的假设。
根据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'就足够了,但是如果必须知道换行符序列,则可以在应用程序中执行上述测试。
textarea
。1.请求正文仅具有\ r \ n 2.键入时,无论您使用\ r,\ r \ n还是\ n,JS值仅具有\ n。它也与您使用IE9 +的发现相匹配。
- Line Feed and Carriage Return
这些HTML实体 将在文本区域内插入新行或回车符。