Js中substr,substring,slice截取字符串的异同

概述

今天在写程序的时候发现js中slice也能用来截取字符串,以前都是用substr或substring,于是想着拿它们来对比一下,它们都可以接受两个参数,第一个是开始截取的位置,默认为0,第二个下文具体介绍验证代码地址:github.com/fanxuewen/e…

一、只传第一个参数

当第一个参数为正数,它们是没有区别的

let str='好好学习,天天向上';
console.log('substr---:',str.substr(2));
console.log('substring:',str.substring(2));
console.log('slice----:',str.slice(2))
复制代码

当第一个参数为负数时,对于substring如果参数小于 0 或为 NaN,则被当作 0,而substr和slice则是从后向前数。

let str='好好学习,天天向上';
console.log('substr---:',str.substr(-2));
console.log('substring:',str.substring(-2));
console.log('slice----:',str.slice(-2));
复制代码

二、两个参数都传

两参数都为正数,且第二个于第一个时。substr是从第一个参数开始的位置起进行截取,第二个参数代表截取的长度;而substring和slice的两个参数表示截取位置的索引,包括开始,但不包括结尾

let str='好好学习,天天向上';
console.log('substr---:',str.substr(2,4));
console.log('substring:',str.substring(2,4));
console.log('slice----:',str.slice(2,4));
复制代码

两参数都为正数,且第二个 于第一个时。通过和上面的对比可以看出substr的第二个参数总是代表的是截取的长度;substring的两个参数表示的是截取的索引(结果只包含索引值小的);slice的两个参数都是正数且第二个参数小于第一个时会返回空(注意当第二参数是负数,代表的是从后向前数,如果数过来的索引大于第一个参数,还是截取的包括开始但不包括结束的字符串哟)。

let str='好好学习,天天向上';
console.log('substr---:',str.substr(2,1));
console.log('substring:',str.substring(2,1));
console.log('slice----:',str.slice(2,1));
复制代码

其他情况自行验证........

转载于:https://juejin.im/post/5cb1bfddf265da0369028890

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值