字符串的截取方法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,所以是空字符串

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我来为您解答这个问题。 在 HTML5 中,截取字符串方法JavaScript 中的截取字符串方法是一致的。常用的截取字符串方法substringsubstrslice。 1. substring 方法 substring 方法可以从字符串中提取指定位置的子字符串。语法如下: str.substring(start, end) 其中,start 和 end 分别是起始位置和结束位置的索引值(包括起始位置,不包括结束位置),如果省略 end 参数,则默认截取字符串末尾。 例如: var str = "Hello world!"; var result = str.substring(0, 5); // 截取 "Hello" var result2 = str.substring(6); // 截取 "world!" 2. substr 方法 substr 方法可以从字符串中提取指定长度的子字符串。语法如下: str.substr(start, length) 其中,start 是起始位置的索引值,length 是要截取的长度。如果省略 length 参数,则默认截取字符串末尾。 例如: var str = "Hello world!"; var result = str.substr(0, 5); // 截取 "Hello" var result2 = str.substr(6); // 截取 "world!" 3. slice 方法 slice 方法可以从字符串中提取指定位置的子字符串。语法如下: str.slice(start, end) 其中,start 和 end 分别是起始位置和结束位置的索引值(包括起始位置,不包括结束位置),如果省略 end 参数,则默认截取字符串末尾。 例如: var str = "Hello world!"; var result = str.slice(0, 5); // 截取 "Hello" var result2 = str.slice(6); // 截取 "world!" 这三种方法都可以截取字符串,但是它们有些细微的差别。substringslice 方法的参数都是以索引值表示位置,而 substr 方法的第二个参数是以长度表示位置。另外,substring 方法不支持负数参数,slice 方法支持负数参数。您可以根据具体的需求选择使用哪种方法

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值