javascript 得到文件后缀名的思路及实现

 更新时间:2020年05月09日 21:27:05   投稿:shangke  
在上传文件时,常常要对文件的类型即对文件的后缀名进行判断,用javascript可以很容易的做到这一点。用Javascript解析一个带绝对路径的文件名并得到后缀名的方法有很多种,这里列出一种,以供参考。

对于一个带绝对路径的文件名如: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 (//www.jb51.net/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 (//www.jb51.net/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执行下不知道会如何?

相关文章

  • JS面试之对事件循环的理解

    JS面试之对事件循环的理解

    这篇文章主要为大家介绍了JS面试之对事件循环的理解分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • JS的replace方法

    JS的replace方法

    在javascript中,String的函数replace()简直太让人喜爱了。它灵活而强大的字符替换处理能力,这里简单介绍下,方便需要的朋友
    2013-12-12
  • 5分钟快速看懂ES6中的反射与代理

    5分钟快速看懂ES6中的反射与代理

    这篇文章主要给大家介绍了如何通过5分钟快速看懂ES6中的反射与代理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ES6具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  •  js中toString()函数与valueOf()函数使用与区别

     js中toString()函数与valueOf()函数使用与区别

    在等于运算符中,如果比较的内容包含对象类型数据,则会涉及隐式转换,那么就会调用toString()函数和valueOf()函数,本文主要介绍了 js中toString()函数与valueOf()函数使用与区别,感兴趣的可以了解一下
    2022-04-04
  • 图片翻转效果具体实现代码

    图片翻转效果具体实现代码

    想必大家对图片翻转效果都有所了解吧,其实很容易实现的,下面有个不错的示例,喜欢的朋友可以参考下
    2014-01-01
  • JavaScript运动减速效果实例分析

    JavaScript运动减速效果实例分析

    这篇文章主要介绍了JavaScript运动减速效果,模拟了物体做减速运动的效果,以两个实例形式分析了javascript实现物体做减速运动的实现技巧,涉及javascript动态操作页面元素样式及数学运算的方法,非常简洁实用,需要的朋友可以参考下
    2015-08-08
  • 获取HTML DOM节点元素的方法的总结

    获取HTML DOM节点元素的方法的总结

    在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式、内容等。如何获取要更新的元素,是首先要解决的问题。
    2009-08-08
  • 使用JS来动态操作css的几种方法

    使用JS来动态操作css的几种方法

    这篇文章主要介绍了使用JS来动态操作css的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 省市联动效果的简单实现代码(推荐)

    省市联动效果的简单实现代码(推荐)

    下面小编就为大家带来一篇省市联动效果的简单实现代码(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • JS TextArea字符串长度限制代码集合

    JS TextArea字符串长度限制代码集合

    因为业务需求 今天做了一个textarea文本域字符串长度限制的方法,其实网上已经有了很多相关的解决方案,但在输入日语时,在IE存在BUG,我的这个版本就是针对这种情况的
    2012-10-10

最新评论