我需要从网址中获取没有扩展名的文件名,并且无法完全达到目的地。
这是我的问题网址: https://www.mealenders.com/shop/index.php/shop/solo-pack.html
这是我尝试过的:
var data = db.Employees
.Where(x => JObject.Parse(x.ImageData)["path"] == "~/Content/Image.png")
.ToList();
这几乎让我在那里,因为它返回“solo-pack.html”。我还需要做些什么才能摆脱“.html”呢?
提前致谢。
答案 0 :(得分:3)
您可以使用javascript执行以下操作。 Pop返回最后一个字符串元素,然后您可以使用replace函数来获取最终没有.html的文件名。
function getFilename () {
return {{ Page Path }}.split('/').pop().replace('.html', '');
}
我看到{{Page Path}}可能是一些模板语言,但您可以修改上面的脚本,获取当前的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('.');
}
答案 1 :(得分: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));

答案 2 :(得分:0)
var sFilename = "solo-pack.html";
var iIndexOfPeriod = sFilename.indexOf(".");
var sFilenameWithoutExtension = sFilename.substring(0, iIndexOfPeriod);
答案 3 :(得分: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));

例如,这会将test / index.html更改为index
,但将index.php.default
更改为index.php
以及test.name.with.dots.txt
- > test.name.with.dots
答案 4 :(得分:0)
function () {
var value={{Page Path}}.split("/");
var fileName= value.reverse()[0].split('.')[0];
return fileName;
}
答案 5 :(得分:0)
又甜又甜:
"https://url/to/file/solo-pack.html".split(/[\\/]/).pop().replace(/\.[^/.]+$/, "")
返回:
solo-pack