Heim  >  Artikel  >  Web-Frontend  >  javascript 得到文件后缀名的思路及实现_javascript技巧

javascript 得到文件后缀名的思路及实现_javascript技巧

WBOY
WBOYOriginal
2016-05-16 17:29:161258Durchsuche

对于一个带绝对路径的文件名如: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.jb51.net/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.jb51.net/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执行下不知道会如何?
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn