Задать вопрос
@TechNOIR

Как вытащить параметр из ссылки?

Имеются ссылки вида:

https://test.ru/index.php?Action=Get;TicketNumber=53861#414922
https://test.ru/index.php?Action=Get;TicketNumber=53861;TicketQueue=Support#414922
https://test.ru/index.php?Action=Get;TicketNumber=53861

Можно ли как-то распарсить ссылку таким образом чтобы независимо от вида ссылки выдергивать из нее номер в переменной TicketNumber?
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
Stalker_RED
@Stalker_RED
Будь это нормальные ссылки, можно было бы сделать так
const number = new URLSearchParams(link).get("TicketNumber");

Но у вас там вместо амперсандов в качестве разделителя точка с запятой. И чем "чинить" такие ссылк проще уж сразу регуляркой.
TicketNumber=(\d+)
https://regex101.com/r/eASIwF/1
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Кого хотим достать: const key = 'TicketNumber';.

Достаём:

const val = str.match(RegExp(`(?<=[?;]${key}=)[^;#]*`))?.[0];

// или

const val = new URL(str.replaceAll(';', '&')).searchParams.get(key);

// или

const val = Object.fromEntries(str
  .split('?')
  .pop()
  .split('#')
  .shift()
  .split(';')
  .map(n => n.split('='))
)[key];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы