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 Select操作大集合
May 26 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
Sep 03 Javascript
javascript白色简洁计算器
May 04 Javascript
jquery滚动特效集锦
Jun 03 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
Nov 25 Javascript
Web前端框架bootstrap实战【第一次接触使用】
Dec 28 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
JavaScript hasOwnProperty() 函数实例详解
Aug 04 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python构造函数及解构函数介绍
2015/02/26 Python
python运行其他程序的实现方法
2017/07/14 Python
Django 路由控制的实现代码
2018/11/08 Python
Python 转换文本编码实现解析
2019/08/27 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
Sql面试题
2013/03/20 面试题
股份合作协议书范本
2014/04/14 职场文书
幼师中班个人总结
2015/02/12 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
JS class语法糖的深入剖析
2022/07/07 Javascript