在上传文件时
常常要对文件的类型即对文件的后缀名进行判断
用javascript可以很容易的做到这一点
用Javascript解析一个带绝对路径的文件名并得到后缀名的方法有很多种
这里列出一种
以供参考
对于一个带绝对路径的文件名如D:Program FilesNotepad++Notepad++exe
首先为了避免转义反斜槓出问题可以用正则表达式来将或替换成#如
D:#Program Files#Notepad++#Notepad++exe
之后以‘#为分隔符将字符串分解成数组得到如下数组
D: ProgramFiles Notepad++ Notepad++exe
取数组的最后一个即为带后缀的文件名Notepad++exe
再以‘为分隔符将这个带后缀的文件名分解成数组得到如下数组
Notepad++ exe
然后再取数组的最后一个就可以得到文件的后缀名exe了
代码如下(Win+IE测试通过)
复制代码 代码如下:
//by MoreWindows
function GetExtensionFileName(pathfilename)
{
var reg = /(+)/g;
var pfn = pathfilename
replace(reg
"#");
var arrpfn = pfn
split("#");
var fn = arrpfn[arrpfn
length
];
var arrfn = fn
split("
");
return arrfn[arrfn
length
];
}
//by MoreWindows
function GetExtensionFileName(pathfilename)
{
var reg = /(+)/g;
var pfn = pathfilename
replace(reg
"#");
var arrpfn = pfn
split("#");
var fn = arrpfn[arrpfn
length
];
var arrfn = fn
split("
");
return arrfn[arrfn
length
];
}
测试代码
复制代码 代码如下:
function Test()
{
var filePath="D:Program FilesNotepad++Notepad++
exe";
alert(GetExtensionFileName(filePath));
}
<input type="button" value="Test" onclick="Test()" />
function Test()
{
var filePath="D:Program FilesNotepad++Notepad++
exe";
alert(GetExtensionFileName(filePath));
}
<input type="button" value="Test" onclick="Test()" />
点击Test按钮就可以弹出内容为exe的对话框表示GetExtensionFileName能正确解析带绝对路径的文件名并得到后缀名
估计这种方法只能在Windows平台下使用吧在Linux执行下不知道会如何?