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 相关文章推荐
jquery.Jwin.js 基于jquery的弹出层插件代码
May 23 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
Apr 01 Javascript
JavaScript中的some()方法使用详解
Jun 09 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
原生JS进行前后端同构
Apr 22 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
Sep 15 Javascript
服务端预渲染之Nuxt(使用篇)
Apr 08 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
JavaScript前端实现压缩图片功能
Mar 06 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 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
为PHP初学者的8点有效建议
2010/11/20 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP中的替代语法简介
2014/08/22 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python类属性与实例属性用法分析
2015/05/09 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python中按键来获取指定的值
2019/03/02 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
Python 处理文件的几种方式
2019/08/23 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
交通事故协议书
2014/04/15 职场文书
会计求职自荐信
2014/06/20 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
通知范文怎么写
2015/04/16 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
javascript之Object.assign()的痛点分析
2022/03/03 Javascript