Как декодировать параметр с пробелом в URL, используя JavaScript? - PullRequest
3 голосов
/ 15 апреля 2011

Я пытаюсь извлечь параметр из URL, но у одного параметра есть пробел, который заменяется на «+», поэтому я извлекаю параметр «iphone + 4», но на самом деле это «iphone 4», как я могу преобразовать ввторая форма, decodeURIComponent, здесь не работает.

Ответы [ 3 ]

8 голосов
/ 15 апреля 2011
function decodeParameter(param) {
   return decodeURIComponent(param.replace(/\+/g, ' '));
}
2 голосов
/ 15 апреля 2011
"iPhone+4".replace("+"," ");  

Что должно это сделать?

0 голосов
/ 15 апреля 2011

Это неоднозначная вещь, потому что вы действительно не знаете, означает ли + пробел или фактический знак плюс.Если вы также несете ответственность за создание URL-адресов, вы можете решить эту проблему с помощью соответствующей функции кодирования URL-адреса, которая будет использовать% 20 ​​для кодирования пробелов.Если вы просто собираете их откуда-то еще, у вас есть возможность предположить, что каждый + означает пробел:).

Вы можете заменить все + с помощью этого кода:

your_text.replace(/\+/g," ");  
...