本文介绍一种使用JavaScript获取带绝对路径文件后缀名的方法。通过正则表达式替换反斜杠,利用split分割字符串,依次提取文件名及后缀。示例代码在Win7+IE9环境下测试通过,展示了GetExtensionFileName函数的实现逻辑。
JavaScript解析文件后缀名原理
在文件上传场景中,通常需要校验文件类型,即判断文件的后缀名。利用JavaScript可以便捷地实现这一功能。解析包含绝对路径的文件名并提取后缀名的方式有多种,此处提供一种常见方案供参考。
假设有一个包含绝对路径的文件名,例如: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://blog.csdn.net/MoreWindows)
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" οnclick="Test()" />
点击Test按钮后,将弹出内容为exe的提示框,表明GetExtensionFileName函数能正确解析带绝对路径的文件名并提取后缀名。
该方法推测仅适用于Windows平台,其在Linux环境下的表现尚不明确。
关于JavaScript获取文件后缀名的介绍到此结束,更多相关内容可参考本站过往文章或继续阅读后续内容,感谢支持。