JavaScript中字符串截取slice() substring() substr()区别

本文详细介绍了JavaScript中字符串截取方法slice、substring和substr的用法及区别。当参数为负数时,slice会将其与字符串长度相加,substr直接从后向前数,而substring将负数转为0。此外,还阐述了各方法在参数交换时的行为,以及如何根据索引值和长度截取字符串。这些知识对于理解和操作字符串至关重要。
摘要由CSDN通过智能技术生成

当接收的参数是负数时,

slice会将它字符串的长度与对应的负数相加,结果作为参数;
substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;
substring则干脆将负参数都直接转换为0。

str.slice(start,stop)提取字符串的某个部分,并以新的字符串返回被提取的部分

start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

var str =01234561.str.slice(index1)//截取范围为[index1,str.length)
eg: str.slice(2)// 返回结果为:23456

2.str.slice(index1,index2);//截取的范围为:[index1,index2)
eg: str.slice(1,3); // 返回结果为 12

3.str.slice(-n); //n为正整数,代表截取后边n个字符
eg: str.slice(-3); // 返回的结果为:456;

注意:
当使用str.slice(index1,index2)时,如果index1>index2的时候,截取的结果时一个空字符串;

str.substring(start,stop);用于提取字符串中介于两个指定下标之间的字符。

start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

start从0开始 到stop(不包含stop)结束 不接受负的参数。

##根据索引值1和索引值2截取字符串

var str =012345;

1.str.substring(n)//截取范围[n,str.length);
eg:str.substring(3); //返回结果为345;

2.str.substring(n,m);//表示从索引为n处开始连续截取m个字符,
eg:str.substring(3,2); //返回结果为34;

3.str.substring(-n); //截取返回结果为:str本身
eg:str.substring(-3) //返回结果为:012345;

注意:
当使用str.substring(index1,index2)时,如果index1>index2的时候,等价与str.substring(index2,index1);
即此处会存在一个强制将索引值小的作为第一个参数,索引值打的作为第二个参数

str.substr(start,length)可在字符串中抽取从start下标开始的指定数目的字符

start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
##跟剧索引值和长度值截取字符串

1.var str =012345;

1.str.substr(n)//截取范围[n,str.length);
eg:str.substr(3); //返回结果为345;

2.str.substr(n,m);//表示从索引为n处开始连续截取m个字符,
eg:str.substring(3,2); //返回结果为34;

3.str.substring(-n); //截取返回结果为:str后边的n个值
eg:str.substring(-3) //返回结果为:345;

注意:
当使用str.substring(index1,index2)时,如果index1>index2的时候,是一个空字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值