我正在使用JavaScript尝试从URL获取文件名。在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获取文件名。在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
您可以使用.pop()获取数组的最后一个元素;
alert(fn.pop());
如何: window.location.href.match(/\/([^/]+)$/)[1];
有一个jQuery插件,可以很容易地解析URL和他们的不同部分提供访问。它所做的一件事就是返回文件名。下面是在GitHub上的插件:
https://github.com/allmarkedup/jQuery-URL-Parser
我会建议使用,避免重蹈覆辙。正则表达式是一个特别适用的编程领域。
这似乎是矫枉过正从URL中提取文件名。 –
如果你正在使用jQuery,并定期与网站合作,我认为你节省的时间会超过缺点。 – Slavo
我可以理解这个观点,但OP甚至没有标记jQuery。 –
这样做;非常感谢!! – user815460