使用 JS 獲取文件擴展名

給你一個文件名,你能得到它的擴展名嗎?這裏面主要考察的是對正則表達式的熟悉程度。javascript

咱們先對文件名作個分析,擴展名是在文件名的最後,且以 . 開頭。java

如此擴展名便有了兩個特色,針對第一個特色,咱們用 $ 元字符限定擴展名在整個文件名的最後;正則表達式

對於第二個特色,以 \. 表示擴展名的開頭,而用 [^\.]+ 匹配擴展名的名字部分。其中由於 . 是元字符,故予以轉義;^ 元字符放置於 . 字符以前表示匹配除 . 字符之外的任意字符。ui

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

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() 方法一行可換成:code

var matches = filename.match(reg);
複製代碼
相關文章
相關標籤/搜索