如何使用javascript / jquery从网址中提取文件名?

2020/12/24 06:11 · jquery ·  · 0评论

某个变量可能包含相对路径或绝对路径。无论哪种方式,我都需要能够从变量中提取文件名:

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);

更短的路

var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
var filename = url.match(/.*\/(.*)$/)[1];
var filename= url.split('/').pop()

我会使用正则表达式。

[^/]*$

它选择最后一个斜杠之后到结尾的所有内容。您可以展开以单独选择扩展名:

/([^/]*?)(\.[^\./]*)?$
var 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);

对于您的示例,子字符串搜索可能是您的最佳选择。

但是,如果您的URI实际上足够复杂,则可以尝试Steven Levithan的parseUri

parseUri(uri).file;

它有2种模式,每种都有其独特之处,因此请务必查看演示

// Extract filename from current page.
var filePath = window.location.pathname;
var fileName = filePath.substr(urlPath.lastIndexOf("/") + 1);

我通过以下方法解决了这个问题:

var URL = window.location.pathname; // Gets page name
var page = URL.substring(URL.lastIndexOf('/') + 1); 
// then display your filename to console
console.info(page)

使用正则表达式,遵循以下原则即可解决问题:

[^/]+\.[^/]+

尽管这并不涵盖所有可能的情况,但对于大多数情况而言,它应该是更合适的。您可以使用:

var url = window.location.href;
var regex = new RegExp("[^/]+\.[^/]+");
var fileName = regex.exec(url);

希望能有所帮助

var filename = /[^\\\/:*?"<>|\r\n]+$/i.exec(window.location.href)[0];

谢谢sam deng,似乎可以用,但是我的朋友有错字

// Extract filename from current page.
var filePath = window.location.pathname;
var fileName = filePath.substr(filePath.lastIndexOf("/") + 1);
    var pathnameArray = window.location.pathname.split("/");
    var nameOfFile = pathnameArray[pathnameArray.length -1];

在考虑制作数组与使用其他人提到的substr时,可能会有一些我不知道的开销。因此,也许这不是一个很好的答案,而是解决同一问题的另一种方法。

如果您的网址是这样的:

yourdomain.com/app_dev.php
yourdomain.com/app_dev.php/article/2

并且您只想提取文件名(/app_dev.php),以便可以使用以下链接到您的主页:

var filename = window.location.pathname.substr(0, window.location.pathname.indexOf("/", 1));
window.location = filename;
本文地址:http://jquery.askforanswer.com/ruheshiyongjavascript-jquerycongwangzhizhongtiquwenjianming.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!