AFON // радиотехник affonya@mail.ru
← Все проекты JavaScript

Парсер query-строки

Разбор строки параметров URL в объект.

JS.18 · Строки

Задача

Превратить строку вида ?a=1&b=2 в объект ключ-значение.

Алгоритм

Строка делится по &, каждая пара — по =, ключ и значение раскодируются decodeURIComponent.

Исходный код

⇩ Скачать 18-parser-query.js

// Разбор query-строки URL
function parseQuery(q) {
  const o = {};
  for (const part of q.replace(/^\?/, '').split('&')) {
    if (!part) continue;
    const [k, v] = part.split('=');
    o[decodeURIComponent(k)] = decodeURIComponent(v || '');
  }
  return o;
}

console.log(parseQuery('?id=42&name=Alex&mode=fast'));

Пояснения

Ведущий знак ? отбрасывается регуляркой; пустые пары пропускаются.