为了账号安全,请及时绑定邮箱和手机立即绑定

substring()与str.slice()区别

既然substring()不可以用负数来表示,那么str.slice()是不是完全可以代替substring()?

正在回答

3 回答

substring与slice的参数是起始值到结束值,类似区间;而substr的参数,是起始值和长度(与php的一致但功能没php多)。

substring与slice的两个参数当为正数时基本一致,除了substring会比较两个参数大小,小的排在前面。

substring的第一个参数为负数时,则自动认为是0,而第二个参数为负数时,由于表示的是结束值,那绝对返回时空字符串了。

slice的第一个参数为负数时,则会将字符串长度与此负数相加(和倒着数一致),而第二个参数为负数时,由于表示的是结束值,那绝对返回时空字符串了。

substr的以一个参数为负数时,则会将字符串长度与此负数相加(和倒着数一致),而第二个参数为负数是,由于表示的是长度,那绝对也是返回空字符串了。

1 回复 有任何疑惑可以回复我~
#1

nadirvishun

没说完不小心点了回复了,个人认为str.slice()完全可以代替substring(),而且有必要扩展这么多方法吗?类似php一样一个方法就能解决吧。 另外上面对于slice说错了: slice的第一个参数为负数时,则会将字符串长度与此负数相加(和倒着数一致),而第二个参数为负数时,同样是将字符串长度与此负数相加(和倒着数一致)。
2017-01-05 回复 有任何疑惑可以回复我~

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

var test = 'hello world';

   document.write(test.slice(-3)+'<br>');         //rld
  document.write(test.substring(-3)+'<br>');     //hello world
    document.write(test.substr(-3)+'<br>');        //rld

     document.write(test.slice(3,-4)+'<br>');       //lo w
    document.write(test.substring(1,0)+'<br>');   //hel
     document.write(test.substr(3,-4)+'<br>');    


4 回复 有任何疑惑可以回复我~

不行哦!

substring()返回的是字符串;

str.slice()返回的是数组哦!


5 回复 有任何疑惑可以回复我~
#1

qq_水无声_03882251

slice()也可以应用于字符串
2016-10-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

substring()与str.slice()区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信