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 js cookie的存储,获取和删除
Dec 29 Javascript
Jquery 1.42 checkbox 全选和反选代码
Mar 27 Javascript
jquery.boxy插件的iframe扩展代码
Jul 02 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
学习js在线html(富文本,所见即所得)编辑器
Dec 18 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
Jun 16 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
浅谈layer弹出层按钮颜色修改方法
Sep 11 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下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
利用Python如何生成随机密码
2016/04/20 Python
python实现AES加密解密
2019/03/28 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
django实现日志按日期分割
2020/05/21 Python
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
热能动力工程毕业生自荐信
2013/11/07 职场文书
葬礼司仪主持词
2014/03/31 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
创卫工作总结2015
2015/04/22 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
银行工作心得体会范文
2016/01/23 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电