我使用serialize()
获取表单值,为了获取值,我拆分序列化字符串,但值是uri编码,比如'@'被'%40'替换,我使用{{1}解码,问题看起来像解决但仍然我用“+”符号替换空格。可以使用decodeURIComponent()
,但它会替换字符串中的合法“+”符号。如何实现呢?
答案 0 :(得分:3)
如果字符串中有合法+
,则它已被编码为%2B
。因此,在对字符串进行decodeURIComponent()
调用之前,请用空格替换表示字符串中空格的所有+
,然后调用decodeURIComponent()
来解码字符串。
使用此代码
var str = "%4Bseri%2Balized+String+plus"
str = str.replace(/\+/g, " ");
str = decodeURIComponent(str);
alert(str);
<强> Demo 强>