2012-02-21 55 views
0

我在變量中有一個文件位置,我需要做的就是從上一個/開始獲取值。刪除字符串中最後一個正斜槓前的數據

例如,我的變量(名稱爲myfile)的內容看起來像/home/tony/files/test.pdf/tmp/admin.doc。我只想進入變量末尾並向後走,直到達到/,然後從該點開始取值。

任何想法?

+4

'lastIn dexOf('/')'是你的朋友 – biziclop 2012-02-21 15:24:58

+0

接受評論作爲回答:) – 2012-02-21 15:27:18

回答

5

可以使用String.substring()String.lastIndexOf()做到這一點:

var index = myfile.lastIndexOf('/'); 
if(index != -1) 
{ 
    var newStr = myfile.substring(index + 1); 
} 

這樣做的另一種方法是使用正則表達式:

var newStr = myfile.replace(/^.*\/(?=[^\/]*$)/, ''); 
+0

哇謝謝你soo多爲您的快速回復和答案。你讓它看起來很容易:) – user1223680 2012-02-21 15:42:49

0
var location = "/home/time/json.pdf"; 
var parts = location.split('/'); 
var index = parts.length-1; 
alert(parts[index]); 

這將做到這一點,但與正則表達式或子串我想你可以做得更快。

0

如果你這樣寫,沒有任何目錄路徑的文件名將被返回。

myfile.substring(myfile.lastIndexOf('/')+1); 
0

與正則表達式

var filePath = '/home/tony/files/test.pdf'; 
 
var fileName = filePath.match(/[^\/]*$/); 
 

 
document.write(fileName);

沒有正則表達式

var filePath = '/home/tony/files/test.pdf'; 
 
var fileName = filePath.split('/').pop(); 
 

 
document.write(fileName);

相關問題