給你一個文件名,你能得到它的擴展名嗎?這裏面主要考察的是對正則表達式的熟悉程度。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);
複製代碼