Блог для вебмастеров и разработчиков
13 апреля 2016, 11:19

JavaScript: как получить get параметр

Как получить get параметры

В javascript нет встроенных функций, которые позволяют получить значение определенного get параметра. Но мы можем написать свою функцию которая будет искать и возвращать значение нужного нам get параметра.

Функция для получения get:

Данная функция позволяет получить значение определенного get параметра.

function $_GET(key) {
    var p = window.location.search;
    p = p.match(new RegExp(key + '=([^&=]+)'));
    return p ? p[1] : false;
}

Например, ваш url из которого нужно получить get выглядит так: http://frontblog.ru/index.php?page=1

Для того чтобы получить значение параметра page вставляете в свой скрипт $_GET('page') и данная функция вернет вам 1, что является значение параметра page.

Если параметра page не окажется на странице, то функция $_GET('page') вернет false.

Функция для получения всех get параметров в виде массива:

Рассмотренная выше функция позволяет получить определенный параметр по ключу, но можно получить все параметры сразу и записать их в переменную и далее использовать их как душе угодно. Пример такой функции:

var gets = (function() {
    var a = window.location.search;
    var b = new Object();
    a = a.substring(1).split("&");
    for (var i = 0; i < a.length; i++) {
  	c = a[i].split("=");
        b[c[0]] = c[1];
    }
    return b;
})();

Данная функция получает все get параметры и записывает их в переменную gets. Для получения параметра page нужно написать так gets['page']. Плюс такого способа только в том, что функция выполнится один раз и у вас будут все параметры в виде ассоциативного массива.

Например, для url http://frontblog.ru/index.php?page=1&item=2 массив будет выглядеть так:

var gets = {
    "page" : "1",
    "item" : "2"
}

Ключами являются page и item. По ним и происходит поиск нужного значения: gets['page'] вернет 1, gets['item'] вернет 2.

Какой функцией воспользоваться решать вам. Также буду рад предложениям подобных функций в комментариях.
Комментарии ()
  1. Валерий Валерий 14 декабря 2017, 15:01 #
    Спасибо за замечательные функции!
    Сильно помогло!
    1. денчик денчик 26 апреля 2018, 20:10 #
      спасибо )) прям то что надо )
      1. Сергей Сергей 15 мая 2018, 08:58 #
        Добрый день. Не могли бы Вы описать функции для добавления и удаления параметров в url строку
        1. AlexRas AlexRas 22 мая 2018, 20:56 #
          Добрый. Вам нужно смотреть в сторону History API, позже напишу функцию отдельной статьей.
        2. Юрий Юрий 13 апреля 2019, 09:01 #
          Здорово, но морально устарело… юзаю свой собственный движок, там настроен мод реврайт и получается, что у меня все страницы типа /page/123 что в переводе на обычный — /?mod=page&id=123 и соответственно функция не работает =(( есть ли возможность как то ее переделать под этот формат? А то приходится в странице делать скрытое поле с ид страницы и уже из него ява-скрипт берет ид страницы что не очень удобно, так как надо не забывать ставить это скрытое поле
          Добавить комментарий