JavaScript 解析带路径文件名获取后缀名的方法

作者:函数茶馆时间:2026-10-23 20:44:56浏览:82

本文介绍一种使用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获取文件后缀名的介绍到此结束,更多相关内容可参考本站过往文章或继续阅读后续内容,感谢支持。

作者最新文章