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

IT技术 javascript jquery regex
2021-02-11 09:25:28

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

http://www.somesite.com/dir1/dir2/filename.gif
/dir1/dir2/filename.gif

目录结构也是任意的。所以基本上给出了上面的任一网址(具有任意目录结构),我需要拉“filename.gif”。提前致谢

6个回答
var index = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(index);
2021-03-17 09:25:28
我得到/filename.gif而不是filename.gif. 在调用 substr 之前,索引应该增加 1。
2021-03-26 09:25:28
这比使用正则表达式快吗?
2021-04-01 09:25:28
@Pomster var index = yourstring.lastIndexOf("\\") + 1;
2021-04-07 09:25:28
@Gregoire 如果 / 是 \ 会发生什么情况,那么您如何获取文件名?
2021-04-10 09:25:28

更短的路

var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
这不支持 filename.php/arctile/slug-name(它将返回 slug-name)
2021-03-29 09:25:28
我会建议使用document.URL替代的window.location.href,当你只检索值。
2021-04-04 09:25:28
var filename = url.match(/.*\/(.*)$/)[1];
var filename= url.split('/').pop()

我会使用正则表达式。

[^/]*$

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

/([^/]*?)(\.[^\./]*)?$
我发现这个正则表达式更清晰,但它不是用 JavaScript 编写的......这是完整的内容: url.match('[^/]*$')[0]
2021-03-18 09:25:28