为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3242003 2019-12-03 11:01:25
速度很快,但要确保我能适应跨平台的变化。我喜欢将在文本区域中输入的新行转换为[逗号],以便可以将输出表示为一行,这是我的问题...目前,从谷歌浏览器发送,当我查看该值时,发现它用于\r\n换行。如果替换,\r\n我知道它将在Windows 7上适用于chrome,但其他平台又如何,其他浏览器将作为新行插入文本区域是否有所不同?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

根据HTML规范,要求浏览器规范用户输入CR LF(\r\n)中的换行符,而且我认为任何浏览器都不会出错。参考:条款17.13.4 HTML 4.01规范中的表单内容类型。

在HTML5草案中,情况更为复杂,因为它们还处理浏览器内部的进程,而不仅仅是处理提交表单时发送到服务器端表单处理程序的数据。根据他们(和浏览器的实践),textarea元素值存在三种变体:

  1. 用户输入的未标准化的原始值;它可能包含CR,LF或CR LF对;

  2. 内部值,称为“ API值”,其中将换行符标准化为LF(仅);

  3. 提交值,其中根据Internet约定将换行符标准化为CR LF对。


查看完整回答
反对 回复 2019-12-03
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

根据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'就足够了,但是如果必须知道换行符序列,则可以在应用程序中执行上述测试。


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 555 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信