使用 JS 獲取文件擴(kuò)展名

給你一個(gè)文件名,你能獲得它的擴(kuò)展名嗎?這里面主要考察的是對(duì)正則表達(dá)式的熟悉程度。

我們先對(duì)文件名做個(gè)分析,擴(kuò)展名是在文件名的最后,且以 . 開頭。

如此擴(kuò)展名便有了兩個(gè)特點(diǎn),針對(duì)第一個(gè)特點(diǎn),我們用 $ 元字符限定擴(kuò)展名在整個(gè)文件名的最后;

對(duì)于第二個(gè)特點(diǎn),以 \. 表示擴(kuò)展名的開頭,而用 [^\.]+ 匹配擴(kuò)展名的名字部分。其中因?yàn)?. 是元字符,故予以轉(zhuǎn)義;^ 元字符放置于 . 字符之前表示匹配除 . 字符以外的任意字符。

綜上最后的匹配正則為 /\.[^\.]+$/,代碼在下面給出:

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

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

需指出一點(diǎn),正則表達(dá)式的 exec() 方法本質(zhì)上與字符串的 match() 方法相同,故上面調(diào)用 exec() 方法一行可換成:

var matches = filename.match(reg);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,799評(píng)論 0 3
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,707評(píng)論 0 5
  • 初衷:看了很多視頻、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,243評(píng)論 0 20
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,674評(píng)論 0 4
  • 你的世界太過喧鬧,是因?yàn)橛X得你太吵 你的世界太過刺激,是因?yàn)橛X得你講話不好聽,而且老是喜歡做一些無意義與結(jié)果的事情...
    victoriapoint閱讀 319評(píng)論 0 2

友情鏈接更多精彩內(nèi)容