我正在使用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