JS中,slice()、substring()、substr()截取字符串的区别

本文深入解析JavaScript中的三种字符串处理方法:slice(), substring() 和 substr()。详细解释了每种方法的语法、使用场景及它们之间的区别,通过实例帮助读者更好地理解和运用。

一、slice()

slice()方法返回一个索引和另一个索引之间的字符串,语法如下:
str.slice(beginIndex, endIndex)
简单理解:第一个参数代表开始位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差
注意:

  • 若beginIndex为负数,则将该值加上字符串长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)
  • 如果beginIndex大于或等于字符串的长度,则slice()返回一个空字符串。
  • 如果endIndex省略,则将slice()字符提取到字符串的末尾。如果为负,它被视为strLength +endIndex
    示例:
    var str = ‘abcdefghij’;
    console.log(str.slice(1, 2)); // b
    console.log(str.slice(-3, 2));// 空
    console.log(str.slice(-3, 9)); // hi
    console.log( str.slice(-3)); // hij
    console.log( str.slice(-3,-1)); // hi
    console.log(str.slice(0,-1)); // abcdefghi
    console.log(str.slice(1)); // bcdefghij
    console.log( str.slice(-20, 2)); // ab
    console.log(str.slice(20)); // 空
    console.log( str.slice(20, 2)); // 空

二、substring()

substring() 返回一个索引和另一个索引之间的字符串,语法如下:
str.substring(indexStart, indexEnd) 含前不含后

  • 如果indexStart 等于indexEnd,substring()返回一个空字符串。
  • 如果indexEnd省略,则将substring()字符提取到字符串的末尾。
  • 如果任一参数小于0或是NaN,它被视为为0。
  • 如果任何一个参数都大于str.length,则被视为是str.length。
  • 如果indexStart大于indexEnd,那么效果substring()就好像这两个论点被交换了一样;例如,str.substring(1, 0) == str.substring(0, 1)
    示例:
    var str = ‘abcdefghij’;
    console.log(str.substring(1, 2)); // b
    console.log(str.substring(1, 1)); // 空
    console.log(str.substring(-3, 2)); // ab
    console.log(str.substring(-3)); // abcdefghij
    console.log(str.substring(1)); // bcdefghij
    console.log(str.substring(-20, 2)); // ab
    console.log(str.substring(2, 20)); // cdefghij
    console.log(str.substring(20, 2)); // cdefghij

三、substr()

substr()方法返回从指定位置开始的字符串中指定字符数的字符,语法如下:
str.substr(start, [length])

  • substr()会从start获取长度为length字符(如果截取到字符串的末尾,则会停止截取)。
  • 如果start是正的并且大于或等于字符串的长度,则substr()返回一个空字符串。
  • 若start为负数,则将该值加上字符串长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)。
  • 如果length为0或为负数,substr()返回一个空字符串。如果length省略,则将substr()字符提取到字符串的末尾。
    示例:
    var str = ‘abcdefghij’;
    console.log(str.substring(1, 2)); // bc
    console.log(str.substring(-3, 2)); // hi
    console.log(str.substring(-3)); // hij
    console.log(str.substring(1)); // bcdefghij
    console.log(str.substring(-20, 2)); // ab
    console.log(str.substring(20, 2)); // 空
substring()与substr()的主要区别

var text = ‘Mozilla’;
console.log(text.substring(2, 5)); // => “zil”
开始位置 结束位置(不含此位置上的字符)
console.log(text.substr(2, 3)); // => “zil”
开始位置 截取长度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值