@zkrvndm
Боты, парсеры, расширения

Как получить значение по ключу при помощи URLSearchParams?

Подскажите, пожалуйста, почему метод get не работает с самым первым ключём после вопросительного знака?
usp = new URLSearchParams('https://qna.habr.com/?test=123&frukt=yabloko');
usp.get('test'); // null
usp.get('frukt'); // yabloko
  • Вопрос задан
  • 70 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
В переданной строке не только параметры - соответственно, разобрана она была неправильно.

Используйте URL вместо URLSearchParams:

const url = new URL('https://qna.habr.com/?test=123&frukt=yabloko');
console.log(url.searchParams.get('test'));

Или вырезайте из строки лишнее:

const str = 'https://qna.habr.com/?test=123&frukt=yabloko';
const usp = new URLSearchParams(str.replace(/^[^?]*\?/, '')); // или str.split('?').pop()
console.log(usp.get('test'));
Ответ написан
WblCHA
@WblCHA
https://stackoverflow.com/questions/55103757/urlse...

Грубо говоря, URLSearchParams сплитит по =, поэтому первый ключ ─ это https://qna.habr.com/?test.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы