Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как разобрать и собрать строку запроса

Короткий ответ

URLSearchParams читает параметры из строки запроса:

const params = new URLSearchParams('?q=coffee&page=2&sort=price');
 
console.log(params.get('q'), params.get('page'));
console.log(params.get('missing'));

Результат:

coffee 2
null

Сборка запроса

Передайте объект, и toString() вернёт готовую строку с закодированными спецсимволами:

const params = new URLSearchParams({ q: 'tea & cake', page: 1 });
 
console.log(params.toString());

Результат:

q=tea+%26+cake&page=1

Несколько значений одного ключа

append() добавляет ещё одно значение, а getAll() возвращает все:

const params = new URLSearchParams();
params.append('tag', 'js');
params.append('tag', 'css');
 
console.log(params.toString());
console.log(params.getAll('tag').join(', '));

Результат:

tag=js&tag=css
js, css

В объект

Object.fromEntries() превращает параметры в обычный объект:

const params = new URLSearchParams('color=red&size=M');
 
console.log(JSON.stringify(Object.fromEntries(params)));

Результат:

{"color":"red","size":"M"}

Частая ошибка

Все значения — строки. Числа преобразуйте явно, иначе + склеит строки:

const params = new URLSearchParams('page=2');
 
console.log(params.get('page') + 1);
console.log(Number(params.get('page')) + 1);

Результат:

21
3

Функции из этого ответа

  • URLSearchParams — Читает и собирает параметры адреса (часть после ?).
  • URL — Разбирает адрес на части и собирает его обратно.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.