不同浏览器对于textarea中换行符的处理
今
天在做一些表单提交,涉及到textarea中的换行,因为填入的内容是Base64编码之后的结果(规范规定,Base64编码结果中每76个字符需要
加上一个回车换行,即一个"\r\n"),在IE下测试,一切OK,但是到了Firefox和谷歌浏览器下,总是提示错误,细查一下,发现不同浏览器对于
换行符处理不同造成的。
-
在IE下,换行符传入\r\n
-
在Firefox和谷歌浏览器下,换行符只传入了\n
因为后台程序默认是按照\r\n处理的,所以字符串就不匹配了。
解决办法:如果发现传入的字符串只有\n,没有\r\n,则用正则表达式将\n替换成\r\n,然后再进行业务处理即可。
附:ASCII表
十六进制
|
|
高三位
|
0X0
|
0X1
|
0X2
|
0X3
|
0X4
|
0X5
|
0X6
|
0X7
|
|
二进制
|
|
000
|
001
|
010
|
011
|
100
|
101
|
110
|
111
|
低四位
|
|
|
|
|
|
|
|
|
|
|
0X0
|
0000
|
|
0NUL
|
16 DLE
|
32SP
|
480
|
64@
|
80P
|
96 `
|
112p
|
0X1
|
0001
|
|
1 SOH
|
17 DC1
|
33!
|
491
|
65A
|
81Q
|
97a
|
113q
|
0X2
|
0010
|
|
2 STX
|
18 DC2
|
34"
|
502
|
66B
|
82R
|
98 b
|
114r
|
0X3
|
0011
|
|
3ETX
|
19 DC3
|
35#
|
513
|
67C
|
83S
|
99 c
|
115s
|
0X4
|
0100
|
|
4 EOT
|
20 DC4
|
36$
|
524
|
68D
|
84T
|
100d
|
116t
|
0X5
|
0101
|
|
5 ENQ
|
21 NAK
|
37%
|
535
|
69E
|
85U
|
101e
|
117u
|
0X6
|
0110
|
|
6 ACK
|
22 SYN
|
38&
|
546
|
70F
|
86V
|
102f
|
118v
|
0X7
|
0111
|
|
7BEL
|
23 ETB
|
39'
|
557
|
71G
|
87W
|
103g
|
119w
|
0X8
|
1000
|
|
8BS
|
24 CAN
|
40(
|
568
|
72H
|
88X
|
104h
|
120x
|
0X9
|
1001
|
|
9HT
|
25 EM
|
41)
|
579
|
73I
|
89Y
|
105i
|
121y
|
0XA
|
1010
|
|
10LF
|
26 SUB
|
42*
|
58:
|
74J
|
90Z
|
106j
|
122z
|
0XB
|
1011
|
|
11 VT
|
27ESC
|
43+
|
59 ;
|
75K
|
91[
|
107k
|
123{
|
0XC
|
1100
|
|
12 FF
|
28 FS
|
44,
|
60 <
|
76L
|
92\
|
108l
|
124|
|
0XD
|
1101
|
|
13CR
|
29 GS
|
45-
|
61=
|
77M
|
93]
|
109m
|
125}
|
0XE
|
1110
|
|
14 SO
|
30 RS
|
46.
|
62>
|
78N
|
94^
|
110n
|
126~
|
0XF
|
1111
|
|
15 SI
|
31 US
|
47/
|
63?
|
79O
|
95_
|
111o
|
127DEL
|
如:
\r对应的ASCII码为10,表示换行
\n对应的ASCII码为13,表示回车
分享到:
相关推荐
### textarea换行符处理 在Web开发中,`textarea`元素是HTML中用于接收多行文本输入的一个常用组件。在用户通过`textarea`输入文本时,可能会遇到换行符(通常为`\r\n`)的问题。这些换行符在不同的环境中可能会被...
本文将深入探讨MySQL数据库中的换行符以及与HTML文本区域(textarea)中的换行符的区别,并讲解如何在Web应用中进行转换处理。 1. MySQL数据库中的换行符 在MySQL数据库中,用来表示换行的字符是`\n`,这在数据库...
在JavaScript中,处理`textarea`元素中的换行符通常是必要的,因为`textarea`中的文本在浏览器中默认使用`\n`(LF,Line Feed)作为换行符,而在某些情况下,我们可能需要将这些换行符转换为其他格式,例如HTML中的`...
在处理Web表单中的`textarea`文本时,经常会遇到如何在用户输入的内容中处理换行符的问题。在HTML中,换行符通常由` `标签表示,以在网页上正确显示多行文本。而`textarea`输入框则使用不同的换行符来区分用户...
默认情况下,当用户在`textarea`中按下回车键时,浏览器会插入一个`\n`(换行符)来表示新行。对于空格,连续的多个空格在HTML渲染时会被合并为一个空格。在后端处理或存储这些数据时,可能需要进一步的转换。 1. *...
然而,当用户在`textarea`中输入文本并按下回车键时,默认情况下,浏览器会将此操作解释为换行符`\n`。但是,在网页显示或服务器端处理时,通常需要将这些换行符转换为HTML中的` `标签,以便于正确显示多行文本。...
在JavaScript编程中,有时我们需要处理用户从不同来源拷贝的数据,并将其粘贴到文本框(input[type="text"]或textarea)中。在这种情况下,拷贝的数据可能会包含换行符,这可能会影响用户的输入体验,特别是在搜索框...
2. `getLineNumber` 则需要遍历`textarea`的值,计算出光标所在位置前有多少个换行符(`\n`),这个数量就是行号。 一旦我们获取到当前行号,就可以删除该行内容了。首先,我们需要根据行号分割文本,删除指定行,...
在处理用户输入时,还应考虑其他因素,如防止恶意输入,以及如何优雅地处理不同浏览器或平台的换行差异。在某些情况下,可能还需要使用 CSS 来控制 `pre` 标签内的样式,例如设置合适的字体、颜色、背景色等,以提高...
textarea 保留换行的注意事项 在 HTML 中,textarea 元素用于创建多行文本输入框,是用户输入大量文本的理想选择。...在开发 Web 应用程序时,需要正确地处理换行符,以确保 textarea 元素的内容正确地显示。
本文将深入探讨如何使用jQuery替换textarea中的换行符,这对于处理用户输入或者格式化数据显示至关重要。 首先,我们需要理解HTML中的textarea元素。textarea通常用于用户输入多行文本,浏览器会自动处理换行,即当...
这是因为浏览器在解析 HTML 时,`textarea` 中的换行符 `\n` 不会被识别为换行,而是需要使用 ` ` 标签来表示新的行。 要解决这个问题,我们需要在数据提交前将 `\n` 换行符转换为 ` ` 标签。以下是一种...
总结来说,在***中处理textarea的换行问题时,你不仅要关心如何将换行符转换为HTML中的" "标签,还需要注意对其他可能破坏页面布局或引起安全问题的HTML特殊字符进行转义处理。这不仅是一个用户界面的问题,还是...
因此,为了实现跨浏览器的兼容性,我们需要根据浏览器类型来处理换行符。 可以使用 `document.all` 来检测是否为 IE 浏览器。如果 `document.all` 存在,则说明当前浏览器是 IE 或旧版的 Edge,此时需要用 `\r\n` ...
通过这些知识点,开发者可以更好地理解和处理在Web开发中,尤其是使用PHP和HTML表单时,处理textarea中的换行符的问题。这将帮助确保无论用户使用何种操作系统,其输入的文本都能被正确地处理并显示。
然而,这些换行符在不同的应用场景下会有不同的表现形式,尤其是在将文本保存到数据库后再次读取显示在Web页面上时,换行符可能不会被浏览器正确解析为换行显示,从而导致文本显示效果不符合预期。 当用户输入的...
- `soft`: 表单提交时,`textarea`中的文本不包含换行符,浏览器会自动处理换行。 - `hard`: 表单提交时,`textarea`中的文本包含换行符,这对于保存格式化的文本很有用。使用`hard`时,通常需要指定`cols`属性以...
总之,处理`textarea` 换行问题的关键在于理解不同浏览器对换行符的处理差异,并通过编程方式将这些差异统一,确保在所有支持的浏览器中都有良好的用户体验。在实际项目中,除了考虑IE和Firefox,还应考虑到其他...
在AngularJS开发中,有时我们需要处理包含换行符的字符串,特别是在展示多行文本时,如在`<textarea>`或`<p>`等元素中。本文将深入探讨如何在AngularJS中手动识别并处理字符串中的换行符。 首先,我们要明白在HTML...