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 相关文章推荐
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 Javascript
JavaScript QueryString解析类代码
Jan 17 Javascript
jquery日历控件实现方法分享
Mar 07 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 Javascript
vue 权限认证token的实现方法
Jul 17 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
js正则匹配多个全部数据问题
Dec 20 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
javascript实现贪吃蛇小练习
Jul 05 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
晶体管来复再生式二管收音机
2021/03/02 无线电
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
js里的prototype使用示例
2010/11/19 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python中update的基本使用方法详解
2019/07/17 Python
Django REST framework 视图和路由详解
2019/07/19 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
英国景点门票网站:attractiontix
2019/08/27 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
数学系个人求职信范文
2014/01/30 职场文书
《狼》教学反思
2014/03/02 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技