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 相关文章推荐
JS控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
javascript中的对象创建 实例附注释
Feb 08 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
js中对象的声明方式以及数组的一些用法示例
Dec 11 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
从setTimeout看js函数执行过程
Dec 19 Javascript
layui 设置table 行的高度方法
Aug 17 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 Javascript
Layui实现主窗口和Iframe层参数传递
Nov 14 Javascript
Javascript如何实现扩充基本类型
Aug 26 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
js网页实时倒计时精确到秒级
2014/02/10 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
vue实现拖拽效果
2019/12/23 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
python笔记(2)
2012/10/24 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
详解python对象之间的交互
2020/09/29 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
Python 多进程原理及实现
2020/12/21 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
应届实习生的自我评价范文
2014/01/05 职场文书
银行领导证婚词
2014/01/11 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
女方离婚起诉书
2015/05/18 职场文书
详解Laravel制作API接口
2021/05/31 PHP
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python