从URL和带文件扩展名获取文件名
我需要得到的文件名没有从URL的扩展名,并不能完全到达那里。从URL和带文件扩展名获取文件名
这里是我的网址有问题: https://www.mealenders.com/shop/index.php/shop/solo-pack.html
这是我已经试过:
function() {
var value={{Page Path}}.split("/");
return value.reverse()[0];
}
,几乎让我有它返回“独奏pack.html”。我还需要做些什么才能摆脱这个“.html”?
在此先感谢。
你可以做使用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('.');
}
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));
var sFilename = "solo-pack.html";
var iIndexOfPeriod = sFilename.indexOf(".");
var sFilenameWithoutExtension = sFilename.substring(0, iIndexOfPeriod);
如果文件名中没有'.'会怎么样? –
在这种情况下,没有扩展名。 –
如果您需要摆脱任何扩展,可以使用.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.txt
→test.name.with.dots
function() {
var value={{Page Path}}.split("/");
var fileName= value.reverse()[0].split('.')[0];
return fileName;
}
第二个选项完美运作。页面路径是我正在处理的网站上GTM中的现有变量。万分感谢。 –
@KevinPhillips没问题,如果你要处理html以外的文件,你可能想查看第三个选项。如果您想回答您的问题,请将我的答案标记为已接受。谢谢! – kyle