Javascript 如何修改下面的函数来解析url?

Javascript 如何修改下面的函数来解析url?,javascript,google-tag-manager,Javascript,Google Tag Manager,我在googletagmanager中编写了一个函数,在这里我得到了url()的最后一段,它非常有效。看到下面的示例代码显示“amazon:32”,但是现在我只想显示“amazon”并在其他地方存储“32”。我如何修改下面的函数来执行此操作 函数lastSegment(){ var clickurl=”http://www.testsite.com/amazon:32/"; var brandName=clickurl.match(/\/([^\/]+)[\/]?$/); brandName

我在googletagmanager中编写了一个函数,在这里我得到了url()的最后一段,它非常有效。看到下面的示例代码显示“amazon:32”,但是现在我只想显示“amazon”并在其他地方存储“32”。我如何修改下面的函数来执行此操作


函数lastSegment(){
var clickurl=”http://www.testsite.com/amazon:32/";
var brandName=clickurl.match(/\/([^\/]+)[\/]?$/);
brandName[1]=brandName[1]。字符(0)。toUpperCase()+brandName[1]。切片(1);//将商标名的第一个字母大写
警报(最后一段[1]);
}

您应该避免为此而触发Regexp。基本上,您应该只使用
url.lastIndexOf('/')
在您的情况下,这样更高效、更可读

function getBrandName(url) {
  if (url.endsWith('/')) {
    url = url.slice(0, url.length - 1);
  }

  var slashIndex = url.lastIndexOf('/');
  if (slashIndex === -1) { return {}; }

  var [ brand, number ] = url.slice(slashIndex + 1).split(':');
  brand = brand[0].toUpperCase() + brand.slice(1);
  return { brand, number };
}
以下是与url一起使用时的输出:

> getBrandName("http://www.testsite.com/amazon:32/")
{ brand: 'amazon', number: '32' }

您可以在
上使用
拆分
。类似于
brandName[1]。拆分(“:”)[0]
。顺便说一句,你有无效的代码…非常感谢!很好!我假设在实践中,
clickurl
是一个动态值。你考虑过如果没有比赛会发生什么吗
brandName[1]
将抛出错误。谢谢!我也理解你的担心。尝试了您的代码,但我收到了以下错误:“第11行错误,字符7:此语言功能仅在ECMASCRIPT6模式或更好的模式下受支持:destructuring。使用--language_in=ECMASCRIPT6或ECMASCRIPT6_STRICT来启用ES6功能。”您使用的浏览器/节点服务器版本是什么?Chrome,这是在Google Tag ManagerAny idea中完成的?你的想法会被欣赏这可能是谷歌标签管理器如何做到这一点的一个问题@金