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技巧收藏
Apr 07 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
js实现无限级树形导航列表效果代码
Sep 23 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
JavaScript生成一个不重复的ID的方法示例
Sep 16 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 Javascript
解读Vue组件注册方式
May 15 Vue.js
让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批量生成缩略图的代码
2008/07/19 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
深入解析php之apc
2013/05/15 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
PHP7 windows支持
2021/03/09 PHP
JavaScript表单常用验证集合
2008/01/16 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
Python编写百度贴吧的简单爬虫
2015/04/02 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python中多线程的创建及基本调用方法
2016/07/08 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
聊聊python中的异常嵌套
2020/09/01 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
汽车专业毕业生推荐信
2013/11/12 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
离婚财产处理协议书
2014/09/30 职场文书
计划生育工作汇报
2014/10/28 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
保证书格式
2015/01/16 职场文书
运动会开幕式主持词
2015/07/01 职场文书
创业计划书之面包店
2019/09/12 职场文书