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


Posted in Javascript onMay 09, 2020

对于一个带绝对路径的文件名如: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 (//3water.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 (//3water.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)); 
} 
<input type="button" value="Test" onclick="Test()" /> 
function Test()
{
 var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe";
 alert(GetExtensionFileName(filePath));
}
<input type="button" value="Test" onclick="Test()" />

点击Test按钮就可以弹出内容为exe的对话框,表示GetExtensionFileName能正确解析带绝对路径的文件名并得到后缀名。
估计这种方法只能在Windows平台下使用吧,在Linux执行下不知道会如何?

Javascript 相关文章推荐
让你的网站可编辑的实现js代码
Oct 19 Javascript
javascript css styleFloat和cssFloat
Mar 15 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
jQuery的text()方法用法分析
Dec 20 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 Javascript
基于jquery实现二级联动效果
Mar 30 jQuery
npm国内镜像 安装失败的几种解决方案
Jun 04 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
弱类型语言javascript中 a,b 的运算实例小结
Aug 07 Javascript
React+TypeScript+webpack4多入口配置详解
Aug 08 Javascript
让js弹出窗口居前显示的实现方法
Jul 10 #Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
Jul 10 #Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 #Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 #Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
Jul 10 #Javascript
javascript 手动给表增加数据的小例子
Jul 10 #Javascript
基于javascript 闭包基础分享
Jul 10 #Javascript
You might like
一些关于PHP的知识
2006/11/17 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python requests获取网页常用方法解析
2020/02/20 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
计算机应用职专应届生求职信
2013/11/12 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL