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实现单继承和多继承的简单方法
Mar 29 Javascript
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
IE本地存储userdata的一个bug说明
Jul 01 Javascript
自己写的Javascript计算时间差函数
Oct 28 Javascript
浅谈JavaScript超时调用和间歇调用
Aug 30 Javascript
JavaScript_ECMA5数组新特性详解
Jun 12 Javascript
JavaScript6 let 新语法优势介绍
Jul 15 Javascript
js仿小米官网图片轮播特效
Sep 29 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
JS前端笔试题分析
Dec 19 Javascript
canvas实现动态小球重叠效果
Feb 06 Javascript
js转换对象为xml
Feb 17 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蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
python的常见命令注入威胁
2013/02/18 Python
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python杀死一个线程的方法
2015/09/06 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
python实现键盘控制鼠标移动
2020/11/27 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python实现根据文件格式分类
2019/10/31 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
如何唤起类中的一个方法
2013/11/29 面试题
普通大学毕业生自荐信
2013/11/04 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python