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 相关文章推荐
使用正则替换变量
May 05 Javascript
jquery validator 插件增加日期比较方法
Feb 21 Javascript
js获取光标位置和设置文本框光标位置示例代码
Jan 09 Javascript
JavaScript生成福利彩票双色球号码
May 15 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
jQuery实现的兼容性浮动层示例
Aug 02 Javascript
JavaScript方法_动力节点Java学院整理
Jun 28 Javascript
javascript实现文本框标签验证的实例代码
Oct 14 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 Javascript
小程序如何获取多个formId实现详解
Sep 20 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php网页后退不再出现过期
2007/03/08 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
Javascript执行效率全面总结
2013/11/04 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
Javascript的闭包详解
2014/12/26 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
python实用代码片段收集贴
2015/06/03 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Python多项式回归的实现方法
2019/03/11 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
档案保密承诺书
2014/06/03 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
思想作风建设心得体会
2014/10/22 职场文书
追悼会家属答谢词
2015/09/29 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
python游戏开发Pygame框架
2022/04/22 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers