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

javascript jquery

44366 просмотра

4 ответа

161 Репутация автора

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

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

РЕДАКТИРОВАТЬ: Дата в 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>
Автор: user2764485 Источник Размещён: 10.09.2013 11:19

Ответы (4)


9 плюса

3515 Репутация автора

Вы можете использовать replace () для этой цели

var dateString = 'Friday+September+13th';
var s = dateString .replace(/\+/g, ' ');
Автор: Bibhu Размещён: 10.09.2013 11:22

-3 плюса

562 Репутация автора

Решение

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

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

Автор: boky Размещён: 10.09.2013 11:29

109 плюса

10968 Репутация автора

Хотя ответ Бибху будет работать в этом случае, вам нужно будет добавить, decodeURIComponentесли у вас есть закодированные символы в строке URI. Вы также хотите убедиться, что вы выполняете замену перед декодированием, если у вас есть допустимый +код в строке URI (as %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'
Автор: Luke Размещён: 25.06.2014 07:54

2 плюса

2934 Репутация автора

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

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

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

Автор: Pratyush Размещён: 12.07.2019 06:51
Вопросы из категории :
32x32