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