我已经在Google跟踪代码管理器中编写了一个函数,我在其中获取了最有效的网址(http://www.testsite.com/amazon:32/)。看到下面的示例代码显示“amazon:32”,但是现在我只想显示“amazon”并在其他地方存储“32”。如何修改下面的功能才能执行此操作?
<script>
function lastSegment() {
var clickurl = "http://www.testsite.com/amazon:32/";
var brandName = clickurl.match(/\/([^\/]+)[\/]?$/);
brandName[1] = brandName[1].charAt(0).toUpperCase() + brandName[1].slice(1); //capitalize first lett of brand name
alert (lastSegment[1]);
}
</script>
再次感谢您的帮助!
答案 0 :(得分: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 };
}
以下是与您的网址一起使用时的输出:
> getBrandName("http://www.testsite.com/amazon:32/")
{ brand: 'amazon', number: '32' }