Как корректно отредактировать значение атрибута?
для 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 шт):
найти по шаблону все то, что начинается после
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>