Return JavaScript 中的文件名,移除 URL 参数

Return filename in JavaScript, removing URL parameters

我正在研究 Google 标签管理器配方,我想 return 单击 URL 的 文件名 .

让我们假设文件的 URL 是:https://www.example.com/file.pdf?v=1

如您所见,一些 URL 参数被添加到实际文件名中。

以下脚本

function() {
  var url = {{Click URL}};
  return url.substr(url.lastIndexOf('/')+1);
}

returns file.pdf?v=1

如何只returnfile.pdf(没有URL参数)?

感谢您的意见!

您可以简单地使用 String.prototype.split:

const str = 'file.pdf?v=1'

console.log(str.split('?')[0])

对于你的函数,就是

function() {
  var url = {{Click URL}};
  return url.substr(url.lastIndexOf('/')+1).split('?')[0];
}

试试这个:

var pdf = new URL('https://www.example.com/file.pdf?v=1').pathname.slice(1);

您可以将 url 拆分为?并参加第一部分。

var array =  url.split('?');
return array[0];

您可以在 GTM 中创建一个 URL 类型变量,将其设置为 return 页面路径并将点击 url 设置为输入:

这将 return 没有协议、域和查询字符串的点击 url 路径。从那里,您可以像在您的代码示例中一样提取文件名。