某个变量可能包含相对路径或绝对路径。无论哪种情况,我都需要能够从变量中提取文件名:
http://www.somesite.com/dir1/dir2/filename.gif
/dir1/dir2/filename.gif
目录结构也是任意的。因此,基本上给定上述任意一个URL(具有任意的目录结构),我需要提取“filename.gif”。提前感谢。
某个变量可能包含相对路径或绝对路径。无论哪种情况,我都需要能够从变量中提取文件名:
http://www.somesite.com/dir1/dir2/filename.gif
/dir1/dir2/filename.gif
目录结构也是任意的。因此,基本上给定上述任意一个URL(具有任意的目录结构),我需要提取“filename.gif”。提前感谢。
var index = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(index);
/filename.gif
而不是filename.gif
。在调用substr之前,索引应该加1。 - Mariano Desanze?url=https%3A%2F%2Ffoobar%2Fimage.jpg
,而实际上你想要的是image.jpg
。我发布了一个解决此问题的答案。 - Caleb Taylor更短的方式
var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
var filename = url.match(/.*\/(.*)$/)[1];
var filename= url.split('/').pop()
[^/]*$
/([^/]*?)(\.[^\./]*)?$
url.match('[^/]*$')[0]
- Jasonvar path = window.location.pathname;
var filename = path.match(/.*\/([^/]+)\.([^?]+)/i)[1];
如果您不希望查询字符串成为文件名的一部分(您可能不希望出现这种情况),可以使用此选项。
var URL = window.location.pathname; // Gets page name
var page = URL.substring(URL.lastIndexOf('/') + 1);
alert(page);
// Extract filename from current page.
var filePath = window.location.pathname;
var fileName = filePath.substr(urlPath.lastIndexOf("/") + 1);
使用正则表达式,类似以下的内容应该可以解决问题:
[^/]+\.[^/]+
虽然这并不能涵盖所有可能的情况,但对于大多数情况来说应该已经足够了。您可以使用以下方法:
var url = window.location.href;
var regex = new RegExp("[^/]+\.[^/]+");
var fileName = regex.exec(url);
["http:"]
。 - Crescent Fresh