Как извлечь значения из GET параметров URL с помощью JavaScript

Проблема с получением параметров из адресной строки

У меня есть веб-страница с адресом, который содержит несколько параметров:

site.example.com/page.html?x=5&y=8&z=data1-data2-data3-data4

Мне нужно получить полное значение параметра z, но когда я пытаюсь его прочитать через JavaScript, получаю только первую часть data1. Остальная часть после дефиса почему-то не читается.

Как правильно извлечь все значение параметра из URL? Какой метод JavaScript лучше использовать для этой задачи?

проверь код на обрезание по дефису - обычно дефисы в url работают нормально. попробуй decodeURIComponent() после получения значения, браузер иногда странно обрабатывает символы. у меня была такая же фигня - нашел лишний split(‘-’) который все ломал. сделай console.log(window.location.search) и посмотри что реально приходит

Скорее всего проблема с кодировкой или парсингом. Попробуй URLSearchParams - он правильно обрабатывает все символы:

const params = new URLSearchParams(window.location.search);
const z = params.get('z');
console.log(z); // должно вывести data1-data2-data3-data4

Если не поможет, тогда проблема в формировании URL. Дефисы не должны мешать чтению параметров.

Может проблема в том, как ты парсишь параметры? С split('&') и split('=') дефисы работают нормально. Покажи свой код для чтения параметров - возможно, там ошибка.