
對于一個帶絕對路徑的文件名如:D:\Program Files\Notepad++\Notepad++.exe
首先為了避免轉義反斜杠出問題,可以用正則表達式來將或\替換成#,如:
D:#Program Files#Notepad++#Notepad++.exe
之后以‘#'為分隔符,將字符串分解成數組,得到如下數組:
D: ProgramFiles Notepad++ Notepad++.exe
取數組的最后一個即為帶后綴的文件名:Notepad++.exe
再以‘.'為分隔符,將這個帶后綴的文件名分解成數組,得到如下數組:
Notepad++ exe
然后再取數組的最后一個就可以得到文件的后綴名exe了
代碼如下(Win7+IE9測試通過):
代碼如下:
//by MoreWindows (http://www.gxlcms.com/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 (http://www.gxlcms.com/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));
}
function Test()
{
var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe";
alert(GetExtensionFileName(filePath));
}
點擊Test按鈕就可以彈出內容為exe的對話框,表示GetExtensionFileName能正確解析帶絕對路徑的文件名并得到后綴名。
估計這種方法只能在Windows平臺下使用吧,在Linux執行下不知道會如何?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com