字符串的截取方法slice(),substring(),substr()用法及区别

const stringValue = 'hello world'
    // slice(a,b):截取字符串(包左不包右)
    //参数1 a : 从下标为 a 的位置开始截取
    //参数2 b (可选):  到下标为 b 的位置结束, b 值为空的时候表示截取到最后
    console.log(stringValue.slice(3));//'lo world'  从下标为3的位置开始截取,截取到最后
    console.log(stringValue.slice(3, 7));//'lo w'  从下标为3的位置开始截取,截取到下标为7的位置,注意包左不包右

    //substring(a,b):截取字符串(包左不包右)
    //参数1 a : 从下标为 a 的位置开始截取
    //参数2 b (可选):  到下标为 b 的位置结束, b 值为空的时候表示截取到最后
    // 注意⚠️:当substring有两个参数的时候,默认将较小的值作为参数1,较大的值作为参数2,例如:stringValue.substring(3,0)===stringValue.substring(0,3)
    console.log(stringValue.substring(3, 0) === stringValue.substring(0, 3));//true
    console.log(stringValue.substring(3));//'lo world'  从下标为3的位置开始截取,截取到最后
    console.log(stringValue.substring(3, 7));//'lo w'  从下标为3的位置开始截取,截取到下标为7的位置,注意包左不包右

    // substr(a,b):截取字符串
    // 参数1:从下标为 a 的位置开始截取
    // 参数2:要截取 b 的长度,b 值为空的时候表示截取到最后
    console.log(stringValue.substr(3));//'lo world' 从下标为3的位置开始截取到最后
    console.log(stringValue.substr(3, 7));//'lo worl' 从下标为3的位置开始截取,截取的长度为7

    //==========================================================

    // 然而当参数中出现负数时,三个方法的行为又不同了

    // slice(a,b)
    // 将所有负数参数值都当成字符串的长度加上负数值得到的结果作为新的参数
    console.log(stringValue.slice(-3));//'rld' : 参数为11-3: stringValue.slice(8)  从下标为8的的位置开始截取到最后
    console.log(stringValue.slice(-5, -2));//'wor' : 参数为11-5,11-2: stringValue.slice(6,9)  从下标为6的的位置开始截取到下标为9的位置

    // substring(a,b)
    //将所有的有负数参数值都转换为0,并且会默认将较小的值作为参数1,较大的值作为参数2,例如:stringValue.substring(3,0)===stringValue.substring(0,3)
    console.log(stringValue.substring(3, -4));//'hel' : stringValue.substring(3, 0)即stringValue.substring(0, 3),从下标为0的位置开始截取到下标为3的位置
    console.log(stringValue.substring(-3, -4))//'' : stringValue.substring(0, 0),从下标为0的位置开始截取到下标为0的位置,所以是空字符串

    // substr(a,b)
    // 第一个负参数当成字符串的长度加上负数值得到的结果作为新的参数,第二个参数转换为0
    console.log(stringValue.substr(3, -4));//'' : stringValue.substr(3, 0),从下标为0的位置开始截取长度为0,所以是空字符串

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值