原生JS实现
(这里可以用substr()或substring()方法)
两者区别:
substring
:
定义
substring 方法用于提取字符串中介于两个指定下标之间的字符。
语法
stringObject.substring(start,stop)
参数 描述
start 必需。一个非负的整数,规定要提取的子串的第一个字符在 >stringObject 中的位置。
stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 >stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符>串的结尾。
返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是>从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
substr
:
定义
substr 方法用于返回一个从指定位置开始的指定长度的子字符串。
语法
stringObject.substr(start [, length ])
参数 描述
start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。
说明
如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。
返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是>从 start 处开始,长度为length的一个字符串。
const extname = (filename) => {
var str = "";
//lastIndexOf()查找指定字符在字符串里面最后一次出现的下标,找不到的话返回-1
var index1 = filename.lastIndexOf(".");
//获取字符串长度
var index2 = filename.length;
//index1为0时代表第一个字符为'.',这种情况下没有后缀名
if(index1>=1){
str = filename.substring(index1,index2);
}
return str;
}
alert(extname("hello.php"));
const extname = (filename) => {
var str = "";
//lastIndexOf()查找指定字符在字符串里面最后一次出现的下标,找不到的话返回-1
var index1 = filename.lastIndexOf(".");
//index1为0时代表第一个字符为'.',这种情况下没有后缀名
if(index1>=1){
str = filename.substr(index1);
}
return str;
}
alert(extname("fkk.hello"));
jquery中的split()方法实现
const extname = (filename) =>{
var str = "";
//split()截取字符串方法,截取完的字符串放在arr数组中
var arr = filename.split(".");
//截取完的第一个字符串和最后一个字符串不能为空
if(arr.length>1 && arr[0]!=='' && arr[arr.length-1]!=''){
str = '.' + arr[arr.length - 1];
}
return str;
}
alert(extname("hello.php"));