substr(), substring(), slice()用法及区别

一,substr()
   substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

   语法:stringObject.substr(start,length)。
   1: start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
   2: length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
   
   demo.html

<script>
    var testStr = "Hello world!";
    console.log(testStr.substr(3,4)); //lo w;
    console.log(testStr.substr(3)); //lo world!;
    console.log(testStr.substr(3,10)); //lo world!;
    console.log(testStr.substr(-1)); //!;
    console.log(testStr.substr(-1,3)); //!;
</script>

二,substring()
   substring() 方法用于提取字符串中介于两个指定下标之间的字符。
   语法:stringObject.substring(start,stop)。

   1:start 必需。一个非负的整数,规定要提取的子串在第一个字符在 stringObject 中的位置。
   2:stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
   注意
   1:substring() 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。理论上不接受负数作为参数,但实际使用并不会报错;
   2:如果参数 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。

<script>
    var testStr = "Hello world!";
    console.log(testStr.substring(3,4)); //l;
    console.log(testStr.substring(4,1)); //ell;
    console.log(testStr.substring(3)); //lo world!;
    console.log(testStr.substring(3,10)); //lo worl;
    console.log(testStr.substring(-1)); //Hello world!
    console.log(testStr.substring(-1,3)); //Hel;
</script>

三,slice()
   slice() 方法可提取字符串的某个部分。与substring()相似。
   语法:stringObject.slice(start,end)。

   1:start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
   2:end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
   注意
   1:slice()函数不支持第一个参数小于第二个参数,会返回空字符;

<script>
    var testStr = "Hello world!";
    console.log(testStr.slice(3,4)); //l;
    console.log(testStr.slice(4,1)); //空字符;
    console.log(testStr.slice(3)); //lo world!;
    console.log(testStr.slice(3,10)); //lo worl
    console.log(testStr.slice(-1)); //!;
    console.log(testStr.slice(-3)); //ld!;
    console.log(testStr.slice(-1,3)); //空字符;
</script>
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值