我在變量中有一個文件位置,我需要做的就是從上一個/
開始獲取值。刪除字符串中最後一個正斜槓前的數據
例如,我的變量(名稱爲myfile
)的內容看起來像/home/tony/files/test.pdf
或/tmp/admin.doc
。我只想進入變量末尾並向後走,直到達到/
,然後從該點開始取值。
任何想法?
我在變量中有一個文件位置,我需要做的就是從上一個/
開始獲取值。刪除字符串中最後一個正斜槓前的數據
例如,我的變量(名稱爲myfile
)的內容看起來像/home/tony/files/test.pdf
或/tmp/admin.doc
。我只想進入變量末尾並向後走,直到達到/
,然後從該點開始取值。
任何想法?
可以使用String.substring()
和String.lastIndexOf()
做到這一點:
var index = myfile.lastIndexOf('/');
if(index != -1)
{
var newStr = myfile.substring(index + 1);
}
這樣做的另一種方法是使用正則表達式:
var newStr = myfile.replace(/^.*\/(?=[^\/]*$)/, '');
哇謝謝你soo多爲您的快速回復和答案。你讓它看起來很容易:) – user1223680 2012-02-21 15:42:49
var location = "/home/time/json.pdf";
var parts = location.split('/');
var index = parts.length-1;
alert(parts[index]);
這將做到這一點,但與正則表達式或子串我想你可以做得更快。
如果你這樣寫,沒有任何目錄路徑的文件名將被返回。
myfile.substring(myfile.lastIndexOf('/')+1);
與正則表達式
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);
'lastIn dexOf('/')'是你的朋友 – biziclop 2012-02-21 15:24:58
接受評論作爲回答:) – 2012-02-21 15:27:18