Несериализовать значения формы - PullRequest
4 голосов
/ 28 января 2012

Я использовал serialize() для получения значений формы, для получения значений я разделяю сериализованную строку, но значения кодируются в uri, например, '@' заменяется на '% 40', я использовал decodeURIComponent() для декодирования, проблемы выглядели решенными, но все же я получаю пробелы, замененные знаком «+». можно использовать string.replace(), но это заменит мои законные знаки '+' в строке. Как этого добиться?

1 Ответ

3 голосов
/ 28 января 2012

Если в строке есть допустимые значения +, они будут уже закодированы как %2B. Поэтому перед вызовом decodeURIComponent() в строке замените все +, представляющие пробел в строке на пробел, а затем вызовите decodeURIComponent() для декодирования строки.

Используйте этот код

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

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...