假设 str是个字符串变量,且设置值为"LittleAnn",字符长度是9
那么这三个函数使用方式:
var str="LittleAnn";
str.slice(start,end);
str.substr(start,length);
str.substring(start,end);
相同点:
start为开始位置下标,end为结束位置下标 下标从0开始计算 如果第3个参数不传,默认从start截取到字符串最后,包含最后一个字符 函数名字全是小写字母,容易让人把substr和substring写成不同点:
1.str.slice(start,end);
(1).2个参数中,如果存在负数将进行转化:转化后下标=负数+字符串总长度,即倒数第几个
(2).正常截取需要end>start(如有负数,进行转换后的),否则返回空字符串
(3).截取长度:end-start(如有负数,进行转换后的),即截取到end的前一位,不包含end
例子1:通过str.slice(start.end)来截取 “Ann” ,有如下种方式:
var str="LittleAnn"; //字符长度是9
str.slice(-3); //"Ann",-3进行转化,-3+9=6
str.slice(6) //"Ann"
str.slice(-3,str.length); //"Ann" (-3+9,9)即(6,9)
str.slice(6,str.length); //"Ann" (6,9)
例子2:通过str.slice(start.end)来截取 “Little” ,有如下种方式:
var str="LittleAnn"; //字符长度是9
str.slice(0,6); //"Little"
str.slice(-str.length,6); // "Little",下标即(-9+9,6),转化为的下标(0,6)
str.slice(0,-3) //"Little",转化后的下标(0,-3+9),为(0,6)
str.slice(-str.length,-3); //"Little",下标即为(-9+9,-3+9),转化后的下标(0,6)
2.str.substr(start,length);
(1)length代表要截取的字符个数
(2)start如果为负数,要进行转化,转化后下标=负数+字符串总长度,即倒数第几个
(3)length要大于0,否则为空字符串
例子3:通过str.substr(start,length)来截取"Ann",有如下种方式:
var str="LittleAnn"; //字符长度是9
str.substr(6,3); //"Ann"
str.substr(-3,3); //"Ann",转化后(-3+9,3)为(6,3)
例子4:通过 str.substr(start,length) 来截取"Little",有如下种方式:
var str="LittleAnn"; //字符长度是9
str.substr(0,6); //"Little"
str.substr(-9,6); //"Little",转化后 (-9+9,6)即(0,6)
3.str.substring(start,end);
(1)start,end中,当参数有负数时,则变为0
(2)从start和end(如有负数,是转化后的),两个参数中最小的参数开始截取到最大的参数下标,字符串不包含最大参数的下标
(3)截取长度:转化后的end-start,即转化后的最大值减去最小值下标
例子5:通过 str.substring(start,end) 来截取 “Ann”,有如下种方式:
var str="LittleAnn"; //字符长度是9
str.substring(6,str.length); //"Ann",(6,9)
str.substring(str.length,6);// "Ann",会从小的6到大的9去进行截取,(6,9)
例子6:通过 str.substring(start,end) 来截取 “Little” ,有如下种方式:
var str="LittleAnn"; //字符长度是9
str.substring(0,6); //"Little"
str.substring(6,0); //"Little" ,会从小0到大的6进行截取,(0,6)