不同浏览器对于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
|
|
0 NUL
|
16 DLE
|
32 SP
|
48 0
|
64 @
|
80 P
|
96 `
|
112 p
|
0X1
|
0001
|
|
1 SOH
|
17 DC1
|
33 !
|
49 1
|
65 A
|
81 Q
|
97 a
|
113 q
|
0X2
|
0010
|
|
2 STX
|
18 DC2
|
34 "
|
50 2
|
66 B
|
82 R
|
98 b
|
114 r
|
0X3
|
0011
|
|
3 ETX
|
19 DC3
|
35 #
|
51 3
|
67 C
|
83 S
|
99 c
|
115 s
|
0X4
|
0100
|
|
4 EOT
|
20 DC4
|
36 $
|
52 4
|
68 D
|
84 T
|
100 d
|
116 t
|
0X5
|
0101
|
|
5 ENQ
|
21 NAK
|
37 %
|
53 5
|
69 E
|
85 U
|
101 e
|
117 u
|
0X6
|
0110
|
|
6 ACK
|
22 SYN
|
38 &
|
54 6
|
70 F
|
86 V
|
102 f
|
118 v
|
0X7
|
0111
|
|
7 BEL
|
23 ETB
|
39 '
|
55 7
|
71 G
|
87 W
|
103 g
|
119 w
|
0X8
|
1000
|
|
8 BS
|
24 CAN
|
40 (
|
56 8
|
72 H
|
88 X
|
104 h
|
120 x
|
0X9
|
1001
|
|
9 HT
|
25 EM
|
41 )
|
57 9
|
73 I
|
89 Y
|
105 i
|
121 y
|
0XA
|
1010
|
|
10 LF
|
26 SUB
|
42 *
|
58 :
|
74 J
|
90 Z
|
106 j
|
122 z
|
0XB
|
1011
|
|
11 VT
|
27 ESC
|
43 +
|
59 ;
|
75 K
|
91 [
|
107 k
|
123 {
|
0XC
|
1100
|
|
12 FF
|
28 FS
|
44 ,
|
60 <
|
76 L
|
92 /
|
108 l
|
124 |
|
0XD
|
1101
|
|
13 CR
|
29 GS
|
45 -
|
61 =
|
77 M
|
93 ]
|
109 m
|
125 }
|
0XE
|
1110
|
|
14 SO
|
30 RS
|
46 .
|
62 >
|
78 N
|
94 ^
|
110 n
|
126 ~
|
0XF
|
1111
|
|
15 SI
|
31 US
|
47 /
|
63 ?
|
79 O
|
95 _
|
111 o
|
127 DEL
|
如:
/r对应的ASCII码为10,表示换行
/n对应的ASCII码为13,表示回车
参考: