Извлечение GET-параметров из URL в JavaScript: советы и трюки

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для получения GET-параметров используйте объект URLSearchParams:

JS
Скопировать код
let params = new URLSearchParams(document.location.search);
let value = params.get('key'); // 'key' – это имя целевого параметра

Таким образом можно извлечь значение параметра 'key' из строки запроса URL. Просто и быстро!

Кинга Идем в IT: пошаговый план для смены профессии

Когда в глазах мелькают сложные запросы

Если перед вами встаёт задача работы с URL, где представлена запутанная строка запроса, обратитесь к инструментам JavaScript:

JS
Скопировать код
let searchParams = window.location.search.substr(1).split('&');
let queryParams = {};

for (let param of searchParams) {
    let [key, value] = param.split('=');
    queryParams[key] = decodeURIComponent(value || "");
}

Такой подход позволяет преобразовать строку запроса в объект, а затем можно начинать расшифровывать параметры.

Безопасность прежде всего: вопросы безопасности

Всегда помните правило: "Никогда не доверяйте URL":

JS
Скопировать код
if(queryParams.hasOwnProperty('userInput')) {
    let userInput = queryParams['userInput'];
    // Обязательно очистите userInput перед его использованием!
}

Всегда проверяйте входные данные, чтобы ваше приложение было защищено от вредоносных атак.

Визуализация

Представьте себе, что вы — смотритель набора ключей🗝️ на празднике замков🎡, где ключи ассоциируются с параметрами. Ваша задача – помогать людям открыть их закрытые шкатулки🎁 с известными как URL:

Markdown
Скопировать код
URL: http://somelocksmithcarnival.com?🔑key1=value1&🔑key2=value2

С использованием JavaScript вы без проблем подобрали ключ ко всем значениям:

JS
Скопировать код
const params = new URLSearchParams(window.location.search);
let box1 = params.get('key1'); // 🔑key1 открывает замок 'value1'
let box2 = params.get('key2'); // 🔑key2 открывает замок 'value2'

Владение ремеслом: парсинг вручную

Иногда приходится брать вещи в свои руки и делать всё самостоятельно:

JS
Скопировать код
function transformToAssocArray(query) {
  if (!query) return {}; 
  return query.split('&').reduce((params, param) => { 
    let [key, value] = param.split('='); 
    params[key] = value ? decodeURIComponent(value.replace('+', ' ')) : ''; 
    return params;
  }, {});
}

let queryParams = transformToAssocArray(window.location.search.substr(1));

Ручной парсинг учитывает обработку пустых или некорректных строк запросов.

Развиваем наш гибкий мир: добавление и манипулирование параметрами

Вы можете воспользоваться URLSearchParams для добавления и изменения параметров:

JS
Скопировать код
params.append('newParam', 'newValue'); // добавляем новый параметр 'newParam' со значением 'newValue'
params.set('existingParam', 'updatedValue'); // обновляем имеющийся параметр 'existingParam'

Отправляемся в гиперпространство: использование объекта window.location

Для охвата большего количества возможностей в области window.location знакомьтесь со следующими элементами:

JS
Скопировать код
let currentUrl = window.location.href; // текущий URL
let pathname = window.location.pathname; // путь до ресурса
let hash = window.location.hash; // якорь URL

Применяйте эти возможности для успешного решения программных задач и получения нужной информации.

Полезные материалы

  1. Window: location property – Веб-API | MDNВсё, что вам требуется знать об объекте location.
  2. Как можно получить параметры строки запроса в JavaScript? – Stack OverflowМногообразие подходов к работе со строками запросов.
  3. Как получить GET-параметры URL с помощью JavaScript — SitePointПростые стратегии извлечения GET-параметров из URL.
  4. Получение переменных URL | CSS-TricksПолезное руководство для работы с параметрами URL.
  5. Объекты URLПоглубже исследуем объект URL.
  6. GitHub – sindresorhus/query-string: Обработка и формирование строк запросовУниверсальный инструмент для взаимодействия со строками запросов.
  7. URLSearchParams – Веб-API | MDNЗолотой стандарт в API URLSearchParams.