我有一個圖像的完整路徑,我正在使用jquery閱讀,形式爲$('img.my_image').attr('src')
但是我只想要文件名部分(放棄路徑)。從JavaScript路徑獲取文件名
是否有任何內置函數來做到這一點,或將正則表達式是唯一的選擇?
我有一個圖像的完整路徑,我正在使用jquery閱讀,形式爲$('img.my_image').attr('src')
但是我只想要文件名部分(放棄路徑)。從JavaScript路徑獲取文件名
是否有任何內置函數來做到這一點,或將正則表達式是唯一的選擇?
var fileNameIndex = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(fileNameIndex);
。 – RubbelDeCatc 2015-07-29 07:30:21
如果您需要跨平臺解決方案,RubbelDeCatc的答案可以很好地適用於前向和反向。 – user1404617 2017-03-09 15:27:56
function getFileName(path) {
return path.match(/[-_\w]+[.][\w]+$/i)[0];
}
在Javascript中,你可以做
function getFileNameFromPath(path) {
var ary = path.split("/");
return ary[ary.length - 1];
}
我發現了一個更好的版本處理UNIX和Windows類路徑字符串。
數1:
var unix_path = '/tmp/images/cat.jpg';
console.log(unix_path.replace(/^.*[\\\/]/, ''));
var win_path = 'c:\\temp\images\cat.jpg';
console.log(win_path.replace(/^.*[\\\/]/, ''));
輸出將被cat.jpg
編號2:(也許更快)
var unix_path = '/tmp/images/cat.jpg';
console.log(unix_path.split(/[\\\/]/).pop());
var win_path = 'c:\\temp\images\cat.jpg';
console.log(win_path.split(/[\\\/]/).pop());
輸出將被貓。 jpg
第一種方法會將完整路徑連接到單個字符串,而不是用於windows路徑的斜槓。 – 2016-02-08 10:54:16
@ManuM當使用字符串文字測試這些時,你必須在你的字符串中使用雙反斜槓,比如'var win_path ='c:\\ temp \\ images \\ cat.jpg';'。否則,它們不會被JavaScript解釋爲反斜槓。 – user1404617 2017-03-09 15:22:17
對不起,我從來沒有用windows測試過它,但也許在windows正則表達式中由三條反斜槓(\\\)引起的雙重bs問題。 – RubbelDeCatc 2017-05-24 07:24:44
使用此解決方案,您可以同時獲得兩個名稱,即帶和不帶文件擴展名。
//getting image source var path=$('img.my_image').attr('src'); //splitting url and getting filename with file extension var file=path.split('/').pop(); //removing extension and keeping just the filename var filename=file.split('.').shift();
http://stackoverflow.com/questions/1302306/how-to-pull-the-file-name-from-a-url-using-javascript-jquery/1302339#1302339 – Gregoire 2010-03-26 19:22:33
啊冷靜,我做了搜索,但它可能是文件名!=文件名使我找不到它。您需要拆分(\和/);您需要拆分linux和mac的 – DCD 2010-03-26 19:23:42