Как корректно отредактировать значение атрибута?

для google analytics создается событие на onclick, пример того, что приходит из бакенда:

<a class="ab-container" href="/сontakt" target="" onclick="dataLayer.push({'event':'Banner Click','event_category': 'Banner','event_label': 'Contact banner[ID: 101 , Banner page: https://magento.ddev.site/about-us]'});">

Проблема в том, что на некоторых страницах баннеры эти подгружаются js, и последняя часть onclick атрибута, а именно url страницы, т.е. то что идет после Banner page: - после пробела и до закрывающей квадратной скобки - приходит из бакенда некорректно. Задача: проверить, корректно ли в onclick прописан url, т.е. сравнить с window.location.href, если да, ничего не делать, если нет, заменить на корректное значение. Я так понимаю, что надо вытаскивать в переменную значения атрибута, и работать с ней как со строкой - т.е. найти по шаблону все то, что начинается после Banner Page: и заканчивается ] и эту подстроку сравнивать с window.location.href, и при необходимости заменить.

С регулярками очень туго у меня, подскажите как корректно реализовать задачу.


Ответы (1 шт):

Автор решения: ksa

найти по шаблону все то, что начинается после Banner Page: и заканчивается ]

Предложу такой вариант...

const o = document.querySelector('.ab-container')
const s = o.getAttribute('onclick')
const r = /(?<=Banner page: ).*(?=])/
console.log(s.match(r)[0])
<a 
  class="ab-container" 
  href="/сontakt" 
  target="" 
  onclick="dataLayer.push({'event':'Banner Click','event_category': 'Banner','event_label': 'Contact banner[ID: 101 , Banner page: https://magento.ddev.site/about-us]'});"
>
</a>

→ Ссылка