【js】字符串截取函数slice,substr,substring的总结

Lecea ·
更新时间:2024-11-11
· 919 次阅读

假设 str是个字符串变量,且设置值为"LittleAnn",字符长度是9
那么这三个函数使用方式:

var str="LittleAnn"; str.slice(start,end); str.substr(start,length); str.substring(start,end);

相同点:

start为开始位置下标,end为结束位置下标 下标从0开始计算 如果第3个参数不传,默认从start截取到字符串最后,包含最后一个字符 函数名字全是小写字母,容易让人把substrsubstring写成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)
作者:向着光芒的女孩(littleAnn)



字符串 substring slice substr js 字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号