我有一个刚才写的网页表单,我试图与之交互 - 我无法更改它。我需要能够通过javascript与它进行交互,但我正在努力让javascript以正确的方式对数据进行编码。看起来不是[A-Za-z0-9]
的一切都被编码了,但是我找不到一个能做同样事情的javascript函数。测试用例:
输入:~+@-="'()_
(最后有一个空格)
所需的输出:%7E%2B%40%2D%3D%22%27%27%28%29%5F%20
逃脱:%7E+@-%3D%22%27%28%29_%20
encodeURI:~+@-=%22'()_%20
encodeURIcomponent:~%2B%40-%3D%22'()_%20
请注意使用IE10的I(#颤抖)。也不可改变。 (我对此并不比你更高兴。)
有什么建议吗? (最好是香草)
答案 0 :(得分:2)
看起来好像是Hex等价物
~ = 7E
+ = 2B
@ = 40
- = 2D
= = 3D
" = 22
' = 27
( = 28
) = 29
_ = 5F
space = 20
您应该可以使用charCodeAt
对这些值进行编码
'~'.charCodeAt(0).toString(16).toUpperCase()
// -> returns '7E'
修改强>
•ASCII代码在此处:http://www.ascii.cl/htmlcodes.htm
•string(16)表示基数16,它是十六进制