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 组件之旅(四):测试 JavaScript 组件
Oct 28 Javascript
Jquery实战_读书笔记1—选择jQuery
Jan 22 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
Sep 01 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
Jun 25 Javascript
Easyui的组合框的取值与赋值
Oct 28 Javascript
layerUI下的绑定事件实例代码
Aug 17 Javascript
Vue引入Stylus知识点总结
Jan 16 Javascript
Vue axios获取token临时令牌封装案例
Sep 11 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 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 lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
canvas实现钟表效果
2017/02/13 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python中的多线程实例教程
2014/08/27 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python实现图片批量压缩程序
2018/07/23 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
浅析python redis的连接及相关操作
2019/11/07 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
财政局个人年终总结
2015/03/03 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js