我有一个像http://www.example.com/blah/th.html这样的网址
我需要一个javascript函数来给我'th'值.
我的所有网址都有相同的格式(2个字母的文件名,扩展名为.html).
我希望它是一个安全的功能,所以如果有人传入一个空的URL它不会破坏.
我知道如何检查长度,但我应该检查null是否正确?
var filename = url.split('/').pop()
为什么这么难?
var filename = url.split('/').pop().split('#')[0].split('?')[0];
使用匹配功能.
function GetFilename(url) { if (url) { var m = url.toString().match(/.*\/(.+?)\./); if (m && m.length > 1) { return m[1]; } } return ""; }
与其他人类似,但是......我使用过汤姆的简单脚本 - 一行,
然后你可以在任何地方使用文件名var:http:
//www.tomhoppe.com/index.php/2008/02/grab-文件名从-窗口的位置/
var filename = location.pathname.substr(location.pathname.lastIndexOf("/")+1);
考虑URL查询和哈希标识符的正则表达式解决方案:
function fileNameFromUrl(url) { var matches = url.match(/\/([^\/?#]+)[^\/]*$/); if (matches.length > 1) { return matches[1]; } return null; }
JSFiddle 在这里.