給你一個檔名,你能獲得它的副檔名嗎?這裡面主要考察的是對正規表示式的熟悉程度。
我們先對檔名做個分析,副檔名是在檔名的最後,且以 .
開頭。
如此副檔名便有了兩個特點,針對第一個特點,我們用 $
元字元限定副檔名在整個檔名的最後;
對於第二個特點,以 \.
表示副檔名的開頭,而用 [^\.]+
匹配副檔名的名字部分。其中因為 .
是元字元,故予以轉義;^
元字元放置於 .
字元之前表示匹配除 .
字元以外的任意字元。
綜上最後的匹配正則為 /\.[^\.]+$/
,程式碼在下面給出:
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);
複製程式碼