Get a file extension with one JS little knowledge point every day

Get a file extension with one JS little knowledge point every day

How to get the file extension?

var file1 = "aaa.xsl";
var file2 = "bbb.doc";
getFileExtension(file1); //returs xsl
getFileExtension(file2); //returs doc

function getFileExtension(filename) {
    
    

}

Solution 1: Regular expression

function getFileExtension1(filename) {
    
    
    return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename)[0] : undefined;
}

Solution 2: Split method of String

function getFileExtension2(filename) {
    
    
    return filename.split('.').pop();
}

But these two solutions cannot solve some edge cases

Solution 3: String's slice and lastIndexOf methods

function getFileExtension3(filename) {
    
    
    return filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
}

console.log(getFileExtension3('')); // ''
console.log(getFileExtension3('filename')); // ''
console.log(getFileExtension3('filename.txt')); // 'txt'
console.log(getFileExtension3('.hiddenfile')); // ''
console.log(getFileExtension3('filename.with.many.dots.ext')); // 'ext'

Guess you like

Origin blog.csdn.net/weixin_43881166/article/details/115293799