首页 > 其他分享 >js 字符串 截取字串 slice,substring,substr方法对比

js 字符串 截取字串 slice,substring,substr方法对比

时间:2022-10-10 14:13:02浏览次数:50  
标签:slice console log 0123456 js substring 索引 str

js 字符串 截取字串 slice,substring,substr方法对比

1. slice() 方法

slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。

该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。

tips:

  1. 两个参数都可为负数,为负数时,表示倒数第几个对应的索引
  2. 省略第二个参数时,将截取剩余所有的字符串,截取到最后
  3. 起始索引必须小于终止索引,否则得到空串""
let str = "0123456";
console.log(str)				//0123456
console.log(str.slice(0,4))		//0123
console.log(str.slice(-3,-1))	//45
console.log(str.slice(3))		//3456

2. substring() 方法

  1. 类似slice():

    1. 该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
    2.  省略第二个参数时,将截取剩余所有的字符串,截取到最后
    
  2. 不同之处在于:

    1. substring() 无法接受负的索引。

      1. 第一个参数(起始索引)为负数时,会当作0处理

        let str = "0123456";
        console.log(str)					//0123456
        console.log(str.substring(-5,2))	//01
        
      2. 第二个参数为负数 (终止索引),截取失败,得到空字符串""

        let str = "0123456";				
        console.log(str)					//0123456
        console.log(str.substring(-5,-2))	//
        
    2. 若第二个参数(终止索引)小于第一个参数(起始索引),二者会被交换位置

      let str = "0123456";
      console.log(str)					//0123456
      console.log(str.substring(4,2))		//23
      

3. substr() 方法

  1. substr() 类似于 slice()

    ​ 1. 第一个参数(起始索引)可以为负数,为负数时,表示倒数第几个对应的索引

  2. 不同之处在于:

    1. 第二个参数规定被提取部分的长度

      let str = "0123456";
      console.log(str)				//0123456
      console.log(str.substr(1,3))    //123
      
    2. 第二个参数可以缺省,但不能为负数

      1. 省略第二个参数时,将截取剩余所有的字符串,截取到最后

      2. 第二个参数为负数时,截取失败,得到空串""

        let str = "0123456";
        console.log(str)				//0123456
        console.log(str.substr(1))		//123456
        console.log(str.substr(1,-2))	//
        

标签:slice,console,log,0123456,js,substring,索引,str
From: https://www.cnblogs.com/grblog/p/16775501.html

相关文章

  • js、jquery 实时监听input中的值,并赋值到另一个input
    <inputtype="text"name="name"id="searchName"><inputtype="text"name="name_two"id="daochuName"><inputtype="text"name="txt_JEDX"id="txt_JEDX"......
  • js Base64 文件上传
     //base64转二进制流(blob)dataURLtoBlob(dataurl){vararr=dataurl.split(","),mime=arr[0].match(/:(.*?);/)[1],bstr=atob......
  • 13. JS do while循环语句的用法
    1.前言JSdowhile循环与 while循环非常相似,不同之处在于,dowhile循环会先执行循环中的代码,然后再对条件表达式进行判断。因此,无论条件表达式是真还是假,dowhile循......
  • 12. JS while循环语句的用法
    1.前言循环就是重复做一件事,在编写代码的过程中,我们经常会遇到一些需要反复执行的操作,例如遍历一些数据、重复输出某个字符串等,如果一行行的写那就太麻烦了,对于这种重复......
  • 11. JS switch case语句详解
    1.前言JSswitchcase语句与 ifelse 语句的多分支结构类似,都可以根据不同的条件来执行不同的代码;但是与ifelse多分支结构相比,switchcase语句更加简洁和紧凑,执行......
  • net core 动态设置appsettings.json
    配置基类该类主要用于判断传递的值是否为类对象,方便赋值1publicinterfaceIBaseConfigEntity2{34} 配置类 建立配置存储类1publicc......
  • ABAP数据转Json
    Json数据类型对应ABAP的定义jsonabap备注字符串string、char 数字p、i 对象结构体、内表 数组string需要而外写逻辑处理布尔abap_boola......
  • javascript parse date string - js 字符串转日期
    一、日期数字newDate().getTime()//1665370859678数字表示从UTC+0时区的1970年1月1日0时0分0秒开始的那一刻起,所经过的毫秒数。无论是在北京还是伦敦,此时此刻,无论......
  • Vue系列---【at Socket.writeAfterFIN [as write] (net.js:441:14) at PoolWorker
    1.问题描述:前端是vue项目,打包和打镜像的时候,本地没问题,jenkins物理机打流水线也没问题,但是到容器云平台使用自带的流水线打包打镜像的时候,就报错了。上次成功上线的代......
  • js闭包理解
    js闭包其实就是一句话闭包变量就是函数对象的属性例1functionf1(){varn=999;functionf2(){n++;alert(n);}returnf2;}varresult=f1();result();r......