2012-01-28 5 views
4

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

ответ

3

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

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

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

Demo

Смежные вопросы