使用 JS 获取文件扩展名

给你一个文件名,你能获得它的扩展名吗?这里面主要考察的是对正则表达式的熟悉程度。

我们先对文件名做个分析,扩展名是在文件名的最后,且以 . 开头。

如此扩展名便有了两个特点,针对第一个特点,我们用 $ 元字符限定扩展名在整个文件名的最后;

对于第二个特点,以 \. 表示扩展名的开头,而用 [^\.]+ 匹配扩展名的名字部分。其中因为 . 是元字符,故予以转义;^ 元字符放置于 . 字符之前表示匹配除 . 字符以外的任意字符。

综上最后的匹配正则为 /\.[^\.]+$/,代码在下面给出:

function getFileExtendingName (filename) {
  // 文件扩展名匹配正则
  var reg = /\.[^\.]+$/;
  var matches = reg.exec(filename);
  if (matches) {
    return matches[0];
  }
  return '';
}

// 示例
var fName = 'dog.jpg';
console.log(getFileExtendingName(fName));   // ".jpg"

需指出一点,正则表达式的 exec() 方法本质上与字符串的 match() 方法相同,故上面调用 exec() 方法一行可换成:

var matches = filename.match(reg);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,342评论 0 3
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,467评论 0 5
  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 4,071评论 0 20
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 你的世界太过喧闹,是因为觉得你太吵 你的世界太过刺激,是因为觉得你讲话不好听,而且老是喜欢做一些无意义与结果的事情...
    victoriapoint阅读 285评论 0 2