关于substring、substr 和 slice、splice的用法及区别

substring和substr

  • substringsubstr都是针对字符串的,都是返回一个副本,而不是再原来字符串上直接操作的。
关于substring()
  • substring(start, stop)表示从start开始到stop之间的新字符串,含头不含尾。
var str = 'follish'
console.log(str.substring(1, 5)) //"olli"
console.log(str.substring(1, 5), str) //"olli follish"
  • 其中start是必填项,stop不填,表示从start处截取到字符串结尾,上代码:
var str = "0123456789"
console.log(str.substring(1)) //"123456789"
  • 如果start比stop大,再方法执行前会先交换这两个参数,例如:
var str = "0123456789";
console.log(str.substring(8,4))//"4567"
  • 如果start 和 stop相等,会返回一个空的字符串,例如:
var str = "0123456789";
console.log(str.substring(6,6))//""
  • 如果 start 和 stop 为负数,则在方法执行之前会先将负数变为0,例如:
var str = "0123456789";
console.log(str.substring(-2,6))//"012345"
console.log(str.substring(2,-6))//"01"
console.log(str.substring(-2,-6))//""
关于substr()
  • substr(start, length)表示返回从start开始包含length长度的新字符串,包含start且不修改原字符串,如:
var str = "0123456789";
console.log(str.substr(1,5))//"12345" length为5
console.log(str.substr(2,6),str)//"234567" "0123456789"
  • 其中start是必填项,如果length不填,表示从start截取到字符串结尾,例如
var str = "0123456789";
console.log(str.substr(1))//"123456789"
  • 如果 start 为负数,那么start = str.length + start ,例如:
var str = "0123456789";
console.log(str.substr(-1))//"9"
console.log(str.substr(-6,3))//"456"
  • 如果length的值为0或负数,则返回空字符串,例如:
var str = "0123456789";
console.log(str.substr(1,0))//""
console.log(str.substr(-1,-1))//""
console.log(str.substr(-1,0))//""
关于slice()
  • 重点声明一下,substring、substr只能操作字符串,splice只能操作数组,而最??的就是slice既可操作数组又可以操作字符串。
  • slice(start, stop)表示截取从下标start到stop之间的元素,并返回新数组不改变原数组(字符串),类似与substring,例如:
var str = "0123456789";
    arr = [0,1,2,3,4,5,6,7,8,9];
console.log(str.slice(1,6))//"12345"
console.log(arr.slice(1,6))//[1,2,3,4,5]
  • start是必填项,如果stop不填,表示从start处截取到结尾,例如:
var str = "0123456789";
    arr = [0,1,2,3,4,5,6,7,8,9];
console.log(str.slice(1))//"123456789"
console.log(arr.slice(1))//[1,2,3,4,5,6,7,8,9]
  • 如果 start 比 stop 大,或者两者相等,则截取的内容为空,例如:
var str = "0123456789";
    arr = [0,1,2,3,4,5,6,7,8,9];
console.log(str.slice(3,3))//""
console.log(arr.slice(3,3))//[]
console.log(str.slice(6,5))//""
console.log(arr.slice(6,5))//[]
  • 注意:如果start或者stop为负数,那么负数的选项从数组尾部开始算起,最后一个数字为-1,倒数第二个数字为-2,依次类推,例如:
var str = "0123456789";
console.log(str.slice(6,-1))//"678"
console.log(str.slice(-6,-1))//"45678"
console.log(str.slice(-6,8))//"4567"
关于splice()
  • splice只能操作数组,splice(start, length, items)表示从下标start出截取length长度的元素后,在start处为原数组添加items,并返回截取的数组,splice会直接修改原数组:
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,3,2,3,4))//[1,2,3]
console.log(arr);//[0,2,3,4,4,5,6,7,8,9] 原数组被截取走了1,2,3,并加入了2,3,4
  • 其中start和length都是必填项,items为选填项,如果length为0或负数,则返回空数组,例如:
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,0,2,3,4))//[]
console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9] 直接在原数组下标0处并加入了2,3,4
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(1,-9,2,3,4))//[]
console.log(arr);//[0,2,3,4,1,2,3,4,5,6,7,8,9] 直接在原数组下标0处并加入了2,3,4
  • 如果start为负数,也是从右往左截取,最后一位为-1,倒数第二位为-2,以此类推,例如:
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(-1,1,2,3,4))//[9]
console.log(arr);//[0,1,2,3,4,5,6,7,8,2,3,4] 从右往左截取1位,也就是9,并加入2,3,4

寡姐最美
【参考链接】:https://www.cnblogs.com/echolun/p/7646025.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值