如何将此 Javascript 通配符放入函数中并使其在 & 处停止

问题描述 投票:0回答:1

我有这个Javascript代码

function() {
  var link_id = {{Click Path}}.split('/')[2];
  if({{Event}}.match(/hr.*/)) return {{Event}};
  if(link_id.match(/hr.*/)) return link_id;
  return false;
}

这需要我的网址格式如下 https://www.example.org/go/hr1234/ 并将 ID 作为 GA4 中的事件报告为“hr1234”(不带引号)。一切都很完美。

但是

我也有类似这样的网址....https://www.example.org/go/uniquename/?param1=something1&gclid=DYNAMICNUMBER¶m2=something 我想捕获 gclid= 之后的 DYNAMICNUMBER 并在它遇到 & 后停止,所以我没有得到任何其他参数。

我尝试了上述的一系列变体,但没有成功。这是我尝试过的示例。

function() {
  var link_id = {{Click Path}}.split('/')[2];
  if({{Event}}.match(gclid=.*)) return {{Event}};
  if(link_id.match(gclid=.*)) return link_id;
  return false;
}

有人可以帮忙吗?

javascript wildcard
1个回答
0
投票

我尝试修改您的代码,使其按您的意愿工作:

function() {
  var link_id = {{Click Path}}.split('/')[2];
  var gclid = {{Click Path}}.match(/gclid=([^&]*)/);
  if (gclid) return gclid[1];
  if ({{Event}}.match(/hr.*/)) return {{Event}};
  if (link_id.match(/hr.*/)) return link_id;
  return false;
}
  • /gclid=([^&]*)/ 匹配文本 gclid= 后跟任意数量的非 & 字符。括号 () 捕获匹配的文本,因此您可以使用 match 方法返回的数组来访问它
  • gclid=.* 匹配 gclid= 之后的所有内容,直到字符串末尾,包括任何 & 字符和后续参数。要停在第一个 & 字符,您可以使用正则表达式 gclid=([^&]*) 来代替
  • match() 方法返回匹配数组,而不是单个匹配。使用数组索引 [1]
© www.soinside.com 2019 - 2024. All rights reserved.