裴大头-秦可爱

裴大头-秦可爱

整理一下JavaScript字符串的截取以及数组的截取

发表于 2021-07-23
裴大头
阅读量 527

在编写前端时,截取字符串或者是截取数组的部分元素都是频繁出现的场景,所以在这整理一下 ::: hljs-center

width: 600px; margin: 2rem

:::

一、截取字符串

JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数:

let str = '我是大头大头下雨不愁';
js

1、slice()

  • 使用一个参数
console.log(str.slice(2))
// 打印(从第2位开始截取)
// 大头大头下雨不愁
js
  • 使用两个参数
console.log(str.slice(2, 4))
// 打印(从第2位开始截取,截取到第4位)
// 大头

console.log(str.slice(4, 2))
console.log(str.slice(-2, -4))
// 打印(当第一个参数大于第二个参数时,截取不到任何内容)
// 

console.log(str.slice(2, -2))
// 打印(当第二个参数时,为负数时相当于是负数加上整个字符串的长度,即str.slice(2, -2 + str.length))
// 大头大头下雨

console.log(str.slice(-4, -2))
// 打印(当两个参数都为负数时,负数就是倒着数,例如-4, -2就是从倒数第4个截取到倒数第2个)
// 下雨
js

2、substring()

使用一个参数和两个正常参数时与slice()一样 当第二个参数是负数时会自动转为0, substring()两个参数无论谁大谁小都是从小的参数开始截取,截取到大的参数。

3、substr()

substr()的两个参数: 第一个参数是起始位置,为正数时正着数,为负数时倒着数。 第二个参数是截取的位数,只能为正数。

4、补充两个函数split()和join()

  • split() 方法用于把一个字符串分割成字符串数组。
let str = '大头大头,下雨不愁';
console.log(str.split(','))

// 打印
// (2) ["大头大头", "下雨不愁"]
js
  • join() 方法用于把数组中的所有元素放入一个字符串。 元素是通过指定的分隔符进行分隔的。
let arr = ['我是', '大头大头', '下雨不愁']
console.log(arr.join('-'))

// 打印
// 我是-大头大头-下雨不愁
js

二、截取数组

1、splice()

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目(该方法会改变原始数组)。 首先splice()的第一个参数是起始位置,为正数时正着数,为负数时倒着数。 第二个参数是截取的位数,只能为正数。 第三个以后包括第三个参数是添加到数组的元素(当第二个参数为0是相当于往数组的第一个参数位置添加元素,当第二个参数为正整数时,相当于第三个以后包括第三个参数的元素替换掉第一个参数开始往后数“第二个参数”个元素)。 其次splice的返回值是截取到的内容,如果第二个参数不为正数,则无返回值。

let arr = ['我是', '大头大头', '下雨不愁'];

// 删除
console.log(arr.splice(1, 1))
console.log(arr)

// 打印
// ["大头大头"]
// (2) ["我是", "下雨不愁"]

// 替换
console.log(arr.splice(1, 1, '大头'))
console.log(arr)

// 打印
// ["大头大头"]
// (3) ["我是", "大头", "下雨不愁"]

// 添加
console.log(arr.splice(1, 0, '大头'))
console.log(arr)

// 打印
// []
// (4) ["我是", "大头", "大头大头", "下雨不愁"]
js

2、slice()

slice() 方法可从已有的数组中返回选定的元素(该方法不改变原始数组)。 第一个参数开始位置。 第二个参数结束位置。 返回截取内容

let arr = ['我是', '大头大头', '下雨不愁'];

console.log(arr.slice(1, 2))
console.log(arr)

// 打印
// ["大头大头"]
// (3) ["我是", "大头大头", "下雨不愁"]
js

补充

补充一点替换字符串中的特定字符 例如:将一段文字中的张三换成李四 这时候可以使用String对象的replace()结合正则表达式

let str = '我是张三,我的笔记本的名称是"张三的电脑"';

console.log(str.replace(new RegExp("张三","g"), '李四'))
console.log(str)

// 打印(不改变原字符串)
// 我是李四,我的笔记本的名称是"李四的电脑"
// 我是张三,我的笔记本的名称是"张三的电脑"
js

推荐阅读

1、JavaScript的常用遍历方法整理 2、Vue生命周期 3、整理一下弹性布局知识点 4、推荐一下前端开发时npm源管理工具 5、强力推荐的idea插件,开发效率提升99%

关注公众号 width:400px;height:150px;

关注贴吧:pei你看雪吧

评论
来发一针见血的评论吧!
表情
  • 裴大头

    男博主

    2021-07-23 16:39

    JavaScript中String对象=>String对象


    0
    回复
      共0条回复,点击查看
推荐文章
  • JavaScript 的事件循环机制

    1点赞1评论

  • Element UI 级联选择器 el-cascader 实现懒加载和搜索功能

    1点赞0评论

  • Java 23种设计模式——适配器模式(Adapter)

    1点赞0评论

  • Vue项目代码规范

    1点赞1评论

  • Java 23种设计模式——组合模式(Composite Pattern)

    1点赞0评论

Crafted with by Pei你看雪

小破站居然运行了 1161 天访客 27545

© 2023 Pei你看雪鲁ICP备19037910号-2