我将使用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])
谢谢!!
我将使用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])
谢谢!!
$
,这样您只会得到最后一部分。window.location.href.match(/[^/]+$/g);
就个人而言,我尝试使用简单的字符串操作来处理像这样的简单任务。这样可以使代码更易于阅读(对于不太熟悉正则表达式的人来说)。
var url = window.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
var filename = window.location.pathname.substring(window.location.pathname.lastIndexOf('/')+1);
附加信息
虽然这只是一些微不足道的内容,但这种方法比正则表达式更有效率:http://jsperf.com/get-file-name
window.location.href.match(/\/([^/]+)$/)[1];
我建议同时删除任何'#'或'?'字符串,因此我的答案是:
var fn = window.location.href.split('/').pop().replace(/[\#\?].*$/,'');
alert(fn);
split('/').pop()
移除路径
replace(/[\#\?].*$/,'')
替换从'#'或'?'到结尾$的内容为空字符串
alert(fn.pop());
有一个jQuery插件可以轻松解析URL并提供对其不同部分的访问。它所做的事情之一是返回文件名。这是GitHub上的插件:
https://github.com/allmarkedup/jQuery-URL-Parser
我建议使用它,避免重复造轮子。正则表达式是编程中特别适用该方法的一个领域。