将子字符串提取到 GTM 变量中的简单代码(Google 跟踪代码管理器)

Simple code to extract substring into a variable of GTM (Google Tag Manager)

我不知道如何编码 Java 并且不是 GTM 方面的专家。然而,我需要的代码非常简单,它可以在在线编辑器上运行,但我一直试图让它在 GTM 上运行,但它没有验证代码。

我需要从一个长字符串(GTM 中的变量 {{Click URL}})中提取电子邮件地址,该字符串包含完整的“mailto:”url 和许多参数,并且只提取来自那里的简短电子邮件(在“.com?”之后没有附加参数)

只是这种 url 的一个例子: 'mailto:information@example.com?subject=Demande%20de%20renseign ements&body=Votre%20nom:%20%0A%0ANom%20du%20produit:%20%0A%0AVotre%20tel .%20si%20vous%20souhaitez%20recevoir%20un%20appel%20de%20notre%20part:%2 0%0A%0AVotre%20demande%20de%20renseignements:%20%0A'

这是代码,


let shortmailto2 = {{Click URL}},
let fin = shortmailto2.indexOf('?'),
let debut = shortmailto2.indexOf(':'),
let shortmailto = shortmailto2.slice(debut+1,fin);

它在在线编辑器上测试时会根据需要提取正确的电子邮件地址,但是当我将其插入 GTP 时(并使用预先存在的变量,即“单击 url”),我收到错误消息(有关屏幕截图,请参见下面的 monosnap link):https://monosnap.com/file/eBFYfEwLv9LrPwGrGl6rzaHCbmoeYj

谢谢!

GTM 自定义 JavaScript 变量:
该字段应该是一个 JavaScript 函数,它 return 使用 'return' 语句作为一个值。如果该函数没有明确 return 一个值,它将 return 未定义并且您的容器可能不会按预期运行。下面是该字段的示例:

  function() {
    var now = new Date();
    return now.getTime();
  }  

以下内容在我测试时对我有用,return只输入电子邮件地址。

 function() {
  var shortmailto2 = {{Click URL}};
  var fin = shortmailto2.indexOf('?');
  var debut = shortmailto2.indexOf(':');
  return shortmailto2.slice(debut+1,fin);      
}