JavaScript字符串操作方法 slice、substr、substring区别

slice(start,end)

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的最后一位作为结束位置。

** slice(start)**

          var str="helloString";
          console.log(str.slice(5)) //单个参数,返回5到最后之间的字符    String
          console.log(str.slice(3)) //单个参数,返回3到最后之间的字符    loString

**slice(start,end) **

          var str="helloString";
          console.log(str.slice(5,8)) //两个参数,返回5到最后之间8的字符    Str 
          console.log(str.slice(3,6)) //两个参数,返回3到最后之间6的字符    loS

当参数为负数情况
slice()方法会将传入的负值与字符串长度相加。

          var str="helloString";
          console.log(str.length); //11
          console.log(str.slice(-5)) //  11-5=6 从第6个到最后    tring
          console.log(str.slice(-6,-2)) //两个参数,11-6=5;11-2=9 5-9之间  Stri

第二个参数比第一个参数值小的情况

          var str="helloString";
          console.log(str.slice(9,5)) // 返回空字符串
          console.log(str.slice(-2,-6)) // 返回空字符串

** 不传参数的情况直接返回整个字符串**

           var str="helloString";
           console.log(str.slice()) // helloString

substring(start,end)

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置。

大部分情况与slice()相同,主要有以下几点不也一样

  • 当第二个参数比第一个小的时候,substring会自动转化参数位置,如下

            var str="helloString";
            console.log(str.substring(7,5)) //St
            console.log(str.substring(5,7)) //St
    
  • 当有参数为负数时,负数会自动转为0,如下
    var str="helloString";
    console.log(str.substring(-6)) //helloString -6转为0
    console.log(str.substring(-1,-2)) //空字符串
    console.log(str.substring(3,-1)) // 0-3之间 hel


substr(start,length)

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数跟之前的方法有些区别,表示返回的字符个数。如果没有传递第二个参数,则将字符串的长度作为结束位置。来看例子:

          var str="helloString"; 
          console.log(str.substr())   //helloString
          console.log(str.substr(3))   //3-最后 loString
          console.log(str.substr(3,5))   //从3开始往后数5个字符 loStr
          console.log(str.substr(10,1))   //从10开始往后数1个字符 g
          console.log(str.substr(10,2))   //从10开始往后数2个字符 g,超过字符串长度按最低有效值计算

有负数情况

          var str="helloString"; 
          console.log(str.substr())   //helloString
          console.log(str.substr(-3))   //11-3=8,8-最后 ing
          console.log(str.substr(-3,-6))   //空
          console.log(str.substr(5,-1))   //空 只要长度为负数返回为空
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Javascript有很多字符串的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,...
    顽皮的雪狐七七阅读 2,233评论 0 2
  • 字符串对象的属性 字符串对象的方法(说明: 底色为土黄色的文字部分主要标明改部分的主要特征标签) String对象...
    南航阅读 1,125评论 0 0
  • Javascript数组基本操作 Javascript中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性...
    haveSnap阅读 303评论 0 0
  • 这是什么鬼?本来只是一句口头禅,可是现如今却成了网络上和现实生活中的一个流行语。 就像去年网络流行语的毛线一样,开...
    章兴中阅读 231评论 0 0
  • 1. 日语通过N3考试 2. 托福110分 3. 体脂比降到12% 4. 攒够30万存款 5. 练好字 6. 写出...
    冲原研介阅读 146评论 0 0