我正在尝试从GTM网站上的旧AWIN标记中提取信息。我们正在努力将其推入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];
}
然而,这是在我们需要的值之后提取所有内容:
'DEFAULT:00:00“; AWIN.Tracking.Sale.test =”0“; AWIN.Tracking.Sal ....
我们创建的所有测试都显示上述内容应该有效,但它不适用于GTM
有没有人知道这应该如何在GTM中运作?同样,我们所期待的只是默认:00.00 的部分。
提前致谢
答案 0 :(得分:1)
这是因为正则表达式中的"(.*)"
部分。
.*
会匹配任何内容,包括其他"
个字符,使其与最后一个"
匹配,后面仍然是正则表达式的其余部分。
将"(.*)"
替换为"([^"]*)"
,这将匹配不 "
的任何字符。
我还建议您在需要编写正则表达式时使用regex101.com。使用它,您还会注意到"
字符在javascript正则表达式中没有特殊含义,因此无需转义它。
编辑:这是正则表达式的修改版本:https://regex101.com/r/TPUU6z/1