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

Почему при использовании регулярных выражений в Safari возникает ошибка «недопустимое имя спецификатора группы»?

В остальных браузерах всё корректно.
Но в safari выдаёт во второй строке "недопустимое имя спецификатора группы".

let url_utm= location.search;
let get_metk =Object.fromEntries((url_utm.match(/(?<=utm_).+?=[^&]*/gu) || []).map(n => n.split('=')));
console.log(get_metk['source']);
  • Вопрос задан
  • 171 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Регулярные выражения
Safari не поддерживает lookbehind.

const utm = Object.fromEntries(Array.from(
  location.search.matchAll(/utm_(.+?)=([^&]*)/g),
  n => n.slice(1)
));

// или

const utm = [...new URLSearchParams(location.search)].reduce((acc, n) => (
  n[0].startsWith('utm_') && (acc[n[0].slice(4)] = n[1]),
  acc
), {});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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