2017-04-26 201 views

回答

3

你可以做使用JavaScript以下。 Pop返回字符串的最后一个元素,然后可以使用replace函数来获取文件名,而不是.html。

function getFilename() { 
    return {{ Page Path }}.split('/').pop().replace('.html', ''); 
} 

我看到{{页路径}}可能是一些模板语言,但你可以修改上面的脚本,得到当前的URL,然后拿到文件名作为如此。

function getFilename() { 
    return window.location.href.split('/').pop().replace('.html', ''); 
} 

此外,你可以使它更具动态性来处理任何文件扩展名如下。您需要使用indexOf然后sub string从文件名开始到期间的位置获取期间指数。

function getFilename() { 
    var filename = window.location.href.split('/').pop(); 
    return filename.substr(0, filename.lastIndexOf('.'); 
} 
+0

第二个选项完美运作。页面路径是我正在处理的网站上GTM中的现有变量。万分感谢。 –

+0

@KevinPhillips没问题,如果你要处理html以外的文件,你可能想查看第三个选项。如果您想回答您的问题,请将我的答案标记为已接受。谢谢! – kyle

0

function getFileName(url) { 
 
    return url.split("/").pop().split(".")[0]; 
 
} 
 
var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html"; 
 
console.log(getFileName(url));

0
var sFilename = "solo-pack.html"; 
var iIndexOfPeriod = sFilename.indexOf("."); 
var sFilenameWithoutExtension = sFilename.substring(0, iIndexOfPeriod); 
+0

如果文件名中没有'.'会怎么样? –

+0

在这种情况下,没有扩展名。 –

0

如果您需要摆脱任何扩展,可以使用.replace()用正则表达式:

var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html"; 
 

 
function getFilename (path) { 
 
    return path.toString().split('/').pop().replace(/\.\w+$/, ''); 
 
} 
 

 
console.log(getFilename(url));

这将例如改变测试/ index.html的分成index,但index.php.default分成index.php,还有test.name.with.dots.txttest.name.with.dots

0
function() { 
var value={{Page Path}}.split("/"); 
var fileName= value.reverse()[0].split('.')[0]; 
return fileName; 
}