我正在使用JavaScript尝试从URL获取文件名。
我可以使用它来获取它:
var fn=window.location.href.match(/([^/])+/g);
alert(fn[fn.length-1]); // get the last element of the array
但有更简单的方法(例如,不必使用fn [fn.length-1]
谢谢!
答案 0 :(得分:3)
就个人而言,我尝试使用简单的字符串操作来完成这样的简单任务。它使代码更易读(对于不太熟悉RegEx的人)。
var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
或者简单地说:
var filename = window.location.pathname.substring(window.location.pathname.lastIndexOf('/')+1);
其他信息
这并不重要,因为这个方法比RegEx更高效:http://jsperf.com/get-file-name
答案 1 :(得分:3)
在最后添加$
,这样您才能获得最后一部分:
window.location.href.match(/[^/]+$/g);
答案 2 :(得分:1)
怎么样:
window.location.href.match(/\/([^/]+)$/)[1];
答案 3 :(得分:0)
你可以使用.pop()来获取数组的最后一个元素;
alert(fn.pop());
答案 4 :(得分:0)
有一个jQuery插件可以轻松解析URL并提供对不同部分的访问。它做的一件事就是返回文件名。这是GitHub上的插件:
https://github.com/allmarkedup/jQuery-URL-Parser
我建议使用它并避免重新发明轮子。正则表达式是一个特别适用的编程领域。
答案 5 :(得分:0)
我建议也删除任何“#”或“?”字符串,所以我的答案是:
var fn = window.location.href.split('/').pop().replace(/[\#\?].*$/,'');
alert(fn);
split('/').pop()
删除路径
replace(/[\#\?].*$/,'')
替换“#”或“?”直到$由空字符串结尾