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 相关文章推荐
JQuery live函数
Dec 24 Javascript
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
js 窗口抖动示例
Sep 04 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
jquery实现简单的自动播放幻灯片效果
Jun 13 Javascript
JavaScript对象数组的排序处理方法
Oct 21 Javascript
Node.js+Express配置入门教程详解
May 19 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
Dec 13 Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
Feb 14 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 jQuery
让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
MySQL数据源表结构图示
2008/06/05 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
php生成mysql的数据字典
2016/07/07 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
如何利用node转发请求详解
2020/09/17 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
信访工作经验交流材料
2014/05/23 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
鸟的天堂导游词
2015/01/31 职场文书
英文导游词
2015/02/13 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
家长会开场白和结束语
2015/05/29 职场文书
师范生见习总结范文
2015/06/23 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python