从URL获取文件名并剥离文件扩展名

时间:2017-04-26 15:13:24

标签: javascript

我需要从网址中获取没有扩展名的文件名,并且无法完全达到目的地。

这是我的问题网址: 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”呢?

提前致谢。

6 个答案:

答案 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