@andrei_pro

Как красиво достать параметр из урла?

Есть строка вида:
http://site.com/files/image.jpg?id=123
Нужно достать id с работой в старых браузерах.

Есть такой вариант:
const url = new URL('http://site.com/files/image.jpg?id=123')
const {id} = Object.fromEntries([...new URLSearchParams(url.search)])


но Object.fromEntries поддерживается не всеми - не подходит.

Есть такой :
const url = new URL('http://site.com/files/image.jpg?id=123')
const searchParams = [].concat(...[...new URLSearchParams(url.search)])
const id = searchParams.length ? searchParams[1] : null


Слишком сложный какой-то. Есть более простой вариант, обязательно с поддержкой всех браузеров?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
url = new URL('http://site.com/files/image.jpg?id=123')
url.searchParams.get('id')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ivankprod
@ivankprod
Системный / веб fullstack-разработчик
const url = 'https://www.site.com/?id=1&some=asd';
let path = url.replace(/([a-zA-Z0-9_\-\/\:\.]+)\?/, '');
const params = path.split('&').reduce(function(p, e) {
	var a = e.split('=');
	p[decodeURIComponent(a[0])] = decodeURIComponent(a[1]);
	return p;
}, {});
Ответ написан
Ваш ответ на вопрос

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

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