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 相关文章推荐
JavaScript读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
jquery 与NVelocity 产生冲突的解决方法
Jun 13 Javascript
JavaScript中自定义事件用法分析
Dec 23 Javascript
js获取元素外链样式的方法
Jan 27 Javascript
js实现进度条的方法
Feb 13 Javascript
js实现文字在按钮上滚动的方法
Aug 20 Javascript
基于JavaScript实现移动端TAB触屏切换效果
Oct 20 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
vue滚动插件better-scroll使用详解
Oct 18 Javascript
js实现文章目录索引导航(table of content)
May 10 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/10/09 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
让 python 命令行也可以自动补全
2014/11/30 Python
python实现中文输出的两种方法
2015/05/09 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Python读取stdin方法实例
2019/05/24 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
北大自主招生自荐信
2013/10/19 职场文书
财务部出纳岗位职责
2013/12/22 职场文书
网络技术专业求职信
2014/05/02 职场文书
交通志愿者活动总结
2014/06/27 职场文书
新生入学欢迎词
2015/01/26 职场文书
信仰纪录片观后感
2015/06/08 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技