反序列化表单值

时间:2012-01-28 05:57:43

标签: javascript jquery webforms

我使用serialize()获取表单值,为了获取值,我拆分序列化字符串,但值是uri编码,比如'@'被'%40'替换,我使用{{1}解码,问题看起来像解决但仍然我用“+”符号替换空格。可以使用decodeURIComponent(),但它会替换字符串中的合法“+”符号。如何实现呢?

1 个答案:

答案 0 :(得分:3)

如果字符串中有合法+,则它已被编码为%2B。因此,在对字符串进行decodeURIComponent()调用之前,请用空格替换表示字符串中空格的所有+,然后调用decodeURIComponent()来解码字符串。

使用此代码

var str = "%4Bseri%2Balized+String+plus"
str = str.replace(/\+/g, " ");
str = decodeURIComponent(str);
alert(str);

<强> Demo