从 GTM 中的字符串值中提取属性
Extract properties from a string value in GTM
我正在尝试从 GTM 网站上的旧 AWIN 标签中提取信息。我们正在努力将其推送到 DataLayer 中,但这需要一段时间,所以这是目前的下一步。
我设法将信息提取到 GTM 中的字符串中,该字符串返回以下值(我手动删除了此 post 的值),这很棒:
'/* Do not change / var AWIN = {}; AWIN.Tracking = {};
AWIN.Tracking.Sale = {}; / Set your transaction parameters */
AWIN.Tracking.Sale.amount = "00.00"; AWIN.Tracking.Sale.channel =
"aw"; AWIN.Tracking.Sale.currency = "GBP"; AWIN
.Tracking.Sale.orderRef = "00000"; AWIN.Tracking.Sale.parts =
"DEFAULT: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 中应该如何工作?同样,我们要提取的只是 DEFAULT:00.00.
部分
提前致谢
这是因为正则表达式中的 "(.*)"
部分。
.*
将匹配任何内容,包括其他 "
个字符,使其匹配到最后一个 "
,该 "
仍紧跟您的正则表达式的其余部分。
将 "(.*)"
替换为 "([^"]*)"
,这将匹配任何 不是 "
.
的字符
我还可以建议您在需要编写正则表达式时使用 regex101.com。使用它,您还会注意到 "
字符在 javascript 正则表达式中没有特殊含义,因此无需转义它。
编辑:这是工作中的正则表达式的修改版本:https://regex101.com/r/TPUU6z/1
我正在尝试从 GTM 网站上的旧 AWIN 标签中提取信息。我们正在努力将其推送到 DataLayer 中,但这需要一段时间,所以这是目前的下一步。
我设法将信息提取到 GTM 中的字符串中,该字符串返回以下值(我手动删除了此 post 的值),这很棒:
'/* Do not change / var AWIN = {}; AWIN.Tracking = {}; AWIN.Tracking.Sale = {}; / Set your transaction parameters */ AWIN.Tracking.Sale.amount = "00.00"; AWIN.Tracking.Sale.channel = "aw"; AWIN.Tracking.Sale.currency = "GBP"; AWIN .Tracking.Sale.orderRef = "00000"; AWIN.Tracking.Sale.parts = "DEFAULT: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 中应该如何工作?同样,我们要提取的只是 DEFAULT:00.00.
部分提前致谢
这是因为正则表达式中的 "(.*)"
部分。
.*
将匹配任何内容,包括其他 "
个字符,使其匹配到最后一个 "
,该 "
仍紧跟您的正则表达式的其余部分。
将 "(.*)"
替换为 "([^"]*)"
,这将匹配任何 不是 "
.
我还可以建议您在需要编写正则表达式时使用 regex101.com。使用它,您还会注意到 "
字符在 javascript 正则表达式中没有特殊含义,因此无需转义它。
编辑:这是工作中的正则表达式的修改版本:https://regex101.com/r/TPUU6z/1