2012-08-04 105 views
14

如何從JavaScript中的字符串路徑獲取文件名?從JavaScript中的字符串路徑獲取文件名?

這裏是我的代碼

var nameString = "/app/base/controllers/filename.js"; //this is the input path string 

做的東西在這裏只得到文件名

var name = ??? //this value should equal to filename.js 
+0

可能重複[如何從使用JavaScript完整路徑的文件名? ](http://stackoverflow.com/questions/423376/how-to-get-the-file-name-from-a-full-path-using-javascript) – 2015-03-29 19:52:30

回答

77

試試這個:

var nameString = "/app/base/controllers/filename.js"; 
    var filename = nameString.split("/").pop(); 
+5

很高興看到一個簡單的,非正則表達式的答案。 – AlexMA 2012-08-04 03:31:06

+2

'-1'參數不是必需的(事實上被忽略)。 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/pop – AKX 2012-08-04 03:36:16

+0

哦,是的,你說得對。 – levi 2012-08-04 03:37:39

6

我不知道爲什麼你要給我們一個正則表達式來做到這一點。當然以下就足夠了:

var nameString = "/app/base/controllers/filename.js"; 
var nameArray = nameString.split('/'); 
var name = nameArray[nameArray.length - 1]; 
+0

可以想見使用正則表達式,但我同意你的看法。雖然正則表達式可能有助於解析不良路徑。 – AlexMA 2012-08-04 03:32:20

+0

這真的應該是答案,更靈活。 – 2016-12-11 02:42:33

-1

一個純粹的正則表達式的解決方案:\/([^\\\/:*?\"<>|]+)$
你會從第1組獲取文件名