js截取字符串slice()、substring()、substr()三种用法

slice()

返回一个索引和另一个索引之间的字符串(不改变原字符串),slice(start,end)有两个参数(start必需,end选填),都是索引,返回值不包括end

var str="0123456789";
console.log(str.slice(1,5))  //1234  开始索引为1 结束索引为5(不包括5)

开始索引为负数,则将该值加上字符串长度后作为开始索引,如果此时还是负数,开始索引为0。

var str="0123456789";
//总长度为10,开始索引为-9,计算后的开始索引为10+(-9)=1
console.log(str.slice(-9,5))//1234  开始索引为1 结束索引为5(不包括5)
//总长度为10,开始索引为-15,计算后的开始索引为10+(-15)=-5  还为负数  即为0
console.log(str.slice(-15,5))//01234  开始索引为0 结束索引为5(不包括5)

如果开始索引大于或等于字符串的长度或大于或等于结束索引,则slice()返回一个空字符串。

var str="0123456789";
console.log(str.slice(15,5))//返回为空
console.log(str.slice(10,5))//返回为空
console.log(str.slice(5,5))//返回为空  开始索引等于结束索引
console.log(str.slice(6,5))//返回为空  开始索引大于结束索引

如果结束索引省略,截取到字符串的末尾。如果为负,字符串长度加上该值即为结束索引,如果此时还为负数,返回空字符

var str="0123456789";
console.log(str.slice(1))//123456789  开始索引为1 截取所有
console.log(str.slice(1,-5))//1234  开始索引为1 结束索引为10+(-5)=5(不包括5)
console.log(str.slice(1,-15))//返回空字符串 10+(-15)=-5<0

substring()

返回一个索引和另一个索引之间的字符串(不改变原字符串),substring(start,end)有两个参数(start必需,end选填),都是索引,返回值不包括end

​
var str="0123456789";
console.log(str.substring(1,5))  //1234  开始索引为1 结束索引为5(不包括5)

任意参数小于0都视为0,两参数都为负数或两参数相等返回空字符

var str="0123456789";
console.log(str.substring(-1,5))  //01234  开始索引为0 结束索引为5(不包括5)
console.log(str.substring(-1,-5)) //返回空
console.log(str.substring(1,1))  //返回空

当任意参数大于字符长度,索引为字符长度 ,当开始索引大于结束索引,两索引交换位置

var str="0123456789";
console.log(str.substring(11,15))  //返回空  开始索引为10 结束索引10 相等返回空
console.log(str.substring(1,15))  //123456789  开始索引为1 结束索引为总长度10(截取到最后)
console.log(str.substring(15,1))  //两参数交换未知 同上

substr()

返回从开始位置到指定字符数的长度 substr(start,length)(不改变原字符串),start为索引,length为从开始索引计算的字符长度(start必需,length选填)

var str="0123456789";
console.log(str.substr(1,5))//12345  从开始索引为1往后截取5个长度

当开始索引等于或大于字符串长度返回空

var str="0123456789";
console.log(str.substr(10,5))//返回空
console.log(str.substr(12,5))//返回空

当开始索引为负数,需要加上字符长度在计算,如果此时还是负数,视为0

var str="0123456789";
console.log(str.substr(-5,5))//56789  开始索引为5 往后截取5个
console.log(str.substr(-12,5))//01234  开始索引为0 往后截取5个

当length为0或者负数,返回空,省略此参数截取到最后

var str="0123456789";
console.log(str.substr(-5,0))//返回空字符
console.log(str.substr(-12,-5))//返回空字符
console.log(str.substr(0))//0123456789
console.log(str.substr(-12))//   0123456789  开始索引0

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您解答这个问题。 在 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 方法支持负数参数。您可以根据具体的需求选择使用哪种方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值