Подтвердить что ты не робот

Удалить знак плюса (+) в строке запроса URL-адреса

Я пытаюсь получить строку в следующем URL-адресе для отображения на моей веб-странице.

http://example.com?ks4day=Friday+September+13th

EDIT: дата в URL-адресе будет изменяться от человека к человеку, поскольку она была объединена моей программой CRM.

Я могу заставить его отображать на моей веб-странице, используя приведенный ниже код, проблема заключается в плюсах (+).

например. Пятница + сентября + 13

Мне нужно, чтобы это заменило знаки плюс (+) пробелами, чтобы он выглядел так:

например. Пятница 13 сентября

Я новичок в этом, поэтому у меня возникают проблемы с его работой.

Любая помощь будет оценена.

Это код, который я использую в файле .js

      function qs(search_for) {
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0  && search_for == parms[i].substring(0,pos)) {
            return parms[i].substring(pos+1);;
        }
    }
    return "";
}

Это код, который я использую на своей веб-странице, чтобы он отображал

     <script type="text/javascript">document.write(qs("ks4day"));</script>
4b9b3361

Ответ 1

Если это то, что вы делаете, знак плюса не будет единственным, что вам покажется трудным. Апостроф ('), равно (=), плюс (+) и в основном что-либо не в допустимых URL-адресах (см. Percent-encoding @Википедия ) собирается сбежать.

Что вы ищете, это функция decodeURIComponent.

Ответ 2

Хотя ответ Bibhu будет работать для этого одного случая, вам нужно добавить decodeURIComponent, если вы закодировали символы в своей строке URI. Вы также хотите убедиться, что вы замените перед декодированием, если у вас есть законный + в вашей строке URI (как %2B).

Я считаю, что это лучший общий способ сделать это:

var x = qs("ks4day");        // 'Friday+September+13th'
x = x.replace(/\+/g, '%20'); // 'Friday%20September%2013th'
x = decodeURIComponent(x);   // 'Friday September 13th'

Вот пример того, когда это может быть полезно:

var x = '1+%2B+1+%3D+2'; 
x = x.replace(/\+/g, '%20'); // '1%20%2B%201%20%3D%202'
x = decodeURIComponent(x);   // '1 + 1 = 2'

Ответ 3

Для этого вы можете использовать функцию replace()

var dateString = 'Friday+September+13th';
var s = dateString .replace(/\+/g, ' ');

Ответ 4

Синтаксический анализ строк с использованием регулярных выражений часто приводит к множеству ошибок. К счастью, все современные браузеры предоставляют URLSearchParams для URLSearchParams обработки параметров из строк URL:

var params = new URLSearchParams(window.location.search);
var value = params.get('ks4day');
// "Friday September 13th"

Ps: есть также хороший polyfill для старых браузеров.