日期:2014-05-16 浏览次数:20387 次
以尽可能多的方法完成下面的函数,使之能够正确返回一个任意给定文件名的扩展名
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"));
?
?
也许这些不是全部的方法,只是把代码贴在这里,以作参考.
函数内的代码有些多是因为做了一些必要性的判断,防止不合乎格式的文件名字符串,应该可以单独提出来做一个函数,这样就没有必要每一个函数都来一次了.
?