javascript 得到文件后綴名的思路及實現(xiàn)
對于一個帶絕對路徑的文件名如:D:\Program Files\Notepad++\Notepad++.exe
首先為了避免轉義反斜杠出問題,可以用正則表達式來將\或\\替換成#,如:
D:#Program Files#Notepad++#Notepad++.exe
之后以‘#'為分隔符,將字符串分解成數(shù)組,得到如下數(shù)組:
D: ProgramFiles Notepad++ Notepad++.exe
取數(shù)組的最后一個即為帶后綴的文件名:Notepad++.exe
再以‘.'為分隔符,將這個帶后綴的文件名分解成數(shù)組,得到如下數(shù)組:
Notepad++ exe
然后再取數(shù)組的最后一個就可以得到文件的后綴名exe了
代碼如下(Win7+IE9測試通過):
//by MoreWindows (//chabaoo.cn/qq) function GetExtensionFileName(pathfilename) { var reg = /(\\+)/g; var pfn = pathfilename.replace(reg, "#"); var arrpfn = pfn.split("#"); var fn = arrpfn[arrpfn.length - 1]; var arrfn = fn.split("."); return arrfn[arrfn.length - 1]; } //by MoreWindows (//chabaoo.cn/qq) function GetExtensionFileName(pathfilename) { var reg = /(\\+)/g; var pfn = pathfilename.replace(reg, "#"); var arrpfn = pfn.split("#"); var fn = arrpfn[arrpfn.length - 1]; var arrfn = fn.split("."); return arrfn[arrfn.length - 1]; }
測試代碼:
function Test() { var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe"; alert(GetExtensionFileName(filePath)); } <input type="button" value="Test" onclick="Test()" /> function Test() { var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe"; alert(GetExtensionFileName(filePath)); } <input type="button" value="Test" onclick="Test()" />
點擊Test按鈕就可以彈出內容為exe的對話框,表示GetExtensionFileName能正確解析帶絕對路徑的文件名并得到后綴名。
估計這種方法只能在Windows平臺下使用吧,在Linux執(zhí)行下不知道會如何?
相關文章
?js中toString()函數(shù)與valueOf()函數(shù)使用與區(qū)別
在等于運算符中,如果比較的內容包含對象類型數(shù)據(jù),則會涉及隱式轉換,那么就會調用toString()函數(shù)和valueOf()函數(shù),本文主要介紹了?js中toString()函數(shù)與valueOf()函數(shù)使用與區(qū)別,感興趣的可以了解一下2022-04-04