`
jdhh_hcm
  • 浏览: 11098 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一道群友出的JS面试题:返回文件名的扩展名

阅读更多

以尽可能多的方法完成下面的函数,使之能够正确返回一个任意给定文件名的扩展名

        function getExtension(fileName){
                //请在此补充该函数



        }


        //函数用例1
        var fileName1 = "myPhoto.jpg";
        var extension1 = getExtension(fileName1);    // extension1 期望值 jpg


        //函数用例2
        var fileName2 = "my_project.latest.js";
        var extension2 = getExtension(fileName2);    // extension2 期望值 js

 

 

我给出的一些回答:

function getExtension(fileName){
        if(typeof(fileName)!="string") return "";
        var tmpArr = fileName.split(".");
        if(fileName=="" || tmpArr.length==1) return "";
        else return tmpArr.pop();
}

function getExtension1(fileName){
        if(typeof(fileName)!="string") return "";
        var reg = /\.(\w+)$/i; //匹配 .后面任意字符结尾(忽略大小写) 这个正则是请教 高人写的,我正则懂得少
        var tmpArr = reg.exec(fileName);
        if(tmpArr == null) return "";
        else return tmpArr[tmpArr.length-1];
}

function getExtension2(fileName){
        if(typeof(fileName)!="string") return "";
        return fileName.substring(fileName.lastIndexOf(".")+1,fileName.length);
}

alert(getExtension1("abc.ccc.js"));

 

 

也许这些不是全部的方法,只是把代码贴在这里,以作参考.

函数内的代码有些多是因为做了一些必要性的判断,防止不合乎格式的文件名字符串,应该可以单独提出来做一个函数,这样就没有必要每一个函数都来一次了.

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics