一道群友出的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"));

 

 

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值