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

У меня есть ссылка с GET параметрами вот такого вида:

www.example.com/page.html?x=5&y=7&z=item1-item2-item3-item6

Мне нужно получить полное значение параметра z. Когда пытаюсь считать URL, получаю только item1. Как правильно это сделать с помощью JavaScript?

Пробовал разные способы, но результат всегда обрезанный. Может есть какой-то стандартный метод для работы с параметрами URL? Или нужно использовать регулярные выражения?

Буду благодарен за рабочий пример кода.

что именно не работает с получением полного значения? возможно проблема в парсинге параметров? покажи код который обрезает результат - так легче понять где косяк. дефисы в параметрах обычно проблем не создают

URLSearchParams - твой лучший друг тут. Делай так:

const url = new URL(window.location.href);
const z = url.searchParams.get('z');
console.log(z); // получишь полное значение item1-item2-item3-item6

Для произвольной строки:

const params = new URLSearchParams('?x=5&y=7&z=item1-item2-item3-item6');
const z = params.get('z');

Корректно обрабатывает все символы в параметрах, включая дефисы.

я обычно использую старый добрый способ через split() - работает везде и просто понятен:

const queryString = window.location.search;
const params = queryString.substring(1).split('&');
for (let param of params) {
    const [key, value] = param.split('=');
    if (key === 'z') {
        console.log(decodeURIComponent(value));
    }
}

не забудь про decodeURIComponent, а то символы криво отобразятся. работает даже в старых браузерах, где URLSearchParams может не поддерживаться