我有一个像http://www.example.com/blah/th.html 的网址
我需要一个 javascript 函数来为我提供 'th' 值。
我所有的 url 都具有相同的格式(2 个字母的文件名,带有 .html 扩展名)。
我希望它是一个安全的函数,所以如果有人传入一个空的 url,它不会中断。
我知道如何检查长度,但我应该检查 null 对吗?
我有一个像http://www.example.com/blah/th.html 的网址
我需要一个 javascript 函数来为我提供 'th' 值。
我所有的 url 都具有相同的格式(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在这里。