Извлечь свойства из строкового значения в GTM - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь извлечь информацию из старого тега AWIN, который есть на сайте с GTM. Мы работаем над тем, чтобы перенести это в DataLayer, но это займет некоторое время, так что на данный момент это следующий шаг.

Мне удалось вытащить информацию в строку в GTM, которая возвращает значение ниже (я вручную удалил значения для этого поста), что здорово:

'/ * Не изменять / var AWIN = {}; AWIN.Tracking = {}; AWIN.Tracking.Sale = {}; / Установить параметры транзакции * / AWIN.Tracking.Sale.amount = "00.00"; AWIN.Tracking.Sale.channel = «Ав»; AWIN.Tracking.Sale.currency = "GBP"; Awin .Tracking.Sale.orderRef = "00000"; AWIN.Tracking.Sale.parts = «ПО УМОЛЧАНИЮ: 00.00»; AWIN.Tracking.Sale.test = "0"; AWIN.Tracking.Sale.voucher = ""; '

Единственная часть, которая мне нужна, это значение

AWIN.Tracking.Sale.parts.

Сценарий, который мы создали для извлечения этого:

function() {
  var awintrackstr = {{DOM - AWIN Image Full}};
  return awintrackstr.match(/AWIN.Tracking.Sale.parts = \"(.*)\";$/)[1];
}

Тем не менее, это извлечение всего, что нам нужно:

'ПО УМОЛЧАНИЮ: 00: 00 "; AWIN.Tracking.Sale.test =" 0 "; AWIN.Tracking.Sal ....

Все тесты, которые мы создали, показывают, что вышеупомянутое должно работать, но оно не работает в GTM

У кого-нибудь есть идеи, как это должно работать в GTM? Опять же, все, что мы хотим извлечь, это часть, которая говорит ПО УМОЛЧАНИЮ: 00.00 .

Заранее спасибо

1 Ответ

0 голосов
/ 01 мая 2018

Это связано с частью "(.*)" в вашем регулярном выражении. .* будет соответствовать чему угодно, в том числе другим " символам, так что оно будет соответствовать последнему ", за которым все еще следует регулярное выражение.

Замените "(.*)" на "([^"]*)", это будет соответствовать любому символу, который не ".

Я также могу порекомендовать использовать regex101.com всякий раз, когда вам нужно написать регулярное выражение. Используя это, вы также заметите, что символ " не имеет особого значения в регулярном выражении javascript, поэтому нет необходимости экранировать его.

Редактировать: вот измененная версия вашего регулярного выражения на работе: https://regex101.com/r/TPUU6z/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...