0%

字符串的常用方法

字符串API

MDN String

字符串的属性

length

字符串的长度

字符串常用方法

都不会影响原字符串

charAt(num)

获取指定位置的字符

  • 返回值 —— 指定索引位置的字符
    1
    2
    3
    var str = 'hello'
    var ret = str.charAt(0)
    console.log(ret) // 'h'

concat()

连接字符串, 作用和 + 一样

  • 可以有一个或多个参数
  • 返回值 —— 新字符串
    1
    2
    3
    4
    var str1 = 'hello'
    var str2 = ' world'
    var str3 = str1.concat(str2, 'hehe')
    console.log(str3) // 'hello worldhehe'

indexOf()

检查一个字符串中是否含有指定字符串

  • 可以指定第二个参数, 指定开始查找的位置
  • 返回值 —— 指定字符串的起始索引
    • 如果不含有, 则返回 -1
      1
      2
      3
      4
      var str = 'world'
      var index = str.indexOf('wo') // 0

      str.indexOf('w', 5) // -1,没找到

includes()

判断一个字符串是否包含另一个字符

  • 区分大小写
  • 返回值 —— true / false
    1
    2
    var str = 'hello'
    str.includes('he') // true

slice()

截取字符串

  • 包含开始索引, 不包含结束索引
    • 如果省略第二个参数, 则截取到结尾
    • 负数表示从后开始计算
  • 返回值 —— 截取的字符串
    1
    2
    var str = 'world'
    var str2 = str.slice(1, 4) // 'orl'

substring()

截取字符串

  • 包含开始索引, 不包含结束索引
    • 不能接收负值做参数,
    • 如果传递了负数, 默认使用 0, 还会调整参数的位置( 如果第二个参数比第一个小,则自动交换位置
  • 返回值 —— 截取的字符串
    1
    2
    3
    4
    var str  = 'hello'
    str.substring(1, 4) // ell

    str.substring(1, -1) // 相当于 str.substring(0, 1) // h

substr()

截取字符串

  • 第一个参数表示开始索引,第二个参数表示截取个数
  • 返回值 —— 截取的字符串
    1
    str.substr(0, 2)

toUpperCase()

转大写

  • 返回值 —— 新的字符串

toLowerCase()

转小写

  • 返回值 —— 新的字符串

endsWith()

判断当前字符串是否是以另外一个给定的子字符串“结尾”

  • 返回值 —— true / false
    1
    2
    3
    const str1 = 'Cats are the best!'

    console.log(str1.endsWith('!')) // true

startsWith()

判断当前字符串是否是以另外一个给定的子字符串“开头”

  • 返回值 —— true / false

trim()

删除一个字符串的两端空白

  • 返回值 —— 新字符串
    1
    2
    3
    4
    const greeting = '   Hello world!   '
    greeting.trim()
    console.log(greeting);
    // expected output: " Hello world! "

padStart()

用给定的字符串填充当前字符串,以便达到给定的长度

  • 原字符串前边填充
  • 返回值 —— 新的字符串
    1
    2
    3
    4
    5
    const str1 = '5'

    console.log(str1.padStart(2, '0')) // "05"

    var m = dt.getMinutes().toString().padStart(2, '0')

padEnd()

用给定的字符串填充当前字符串,以便达到给定的长度

  • 原字符串后边填充
  • 返回值 —— 新的字符串

可以传递正则表达式作为参数的方法

split()

将字符串 拆分为一个字符串数组

  • 需要一个字符串(或正则)作为参数
    • 如果传递一个空串, 则将字符串的每一个字符作为数组的元素
    • 如果传递一个正则,不需要指定全局模式
  • 返回值 —— 字符串数组
    1
    2
    3
    4
    5
    6
    7
    var str = 'hello,world'
    var arr = str.split(',')
    console.log(arr) // ['hello', 'world']

    var str = '1a2b3c4d5e6f7'
    var result = str.split(/[A-z]/) // 按字母拆分 str
    console.log(result) // [1, 2, 3, 4, 5, 6, 7]

replace()

用新的字符串替换部分符合条件的字符

  • 第一个参数可以是字符串,也可以是正则表达式
  • 返回值 —— 新字符串
    1
    2
    3
    4
    5
    6
    7
    var str = '你好漂亮漂亮'
    var str1 = str.replace(/漂亮/g, '丑')
    console.log(str1) // '你好丑丑'

    var str3 = '1a2b3c'
    var str4 = str3.replace(/[A-z]/g, '') // 去掉字符串中的字母
    console.log(str4) // 123

replaceAll()

替换所有

  • 如果参数为正则,必须指定全局模式
  • 返回值 —— 新字符串

查询符合正则的字符的索引

  • 不能指定全局模式
  • 返回值 —— 第一个匹配的索引
    1
    2
    3
    var str = 'abcdefg'
    var ret = str.search(/a[bef]c/) // 搜索字符串中是否含有 abc 或者 aec 或 afc
    console.log(ret) // 0

match()

根据正则表达式将字符串中符合条件的内容 提取 出来

  • 默认情况下, match 只会找到第一个符合要求的内容, 找到以后就停止检索
  • 返回值 —— 数组
    1
    2
    3
    var str = '1a2b3c'
    var ret = str.match(/[A-z]/ig) //(全局找字母, 忽略大小写)
    console.log(ret) // [a, b, c]

字符串常见算法

将 - 划线字符串转驼峰字符串

1
2
3
4
5
6
7
8
9
10
function toCamelStr(str) {
const arr = str.split('-')
for(let i = 1; i < arr.length ; i++) {
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1)
}

return arr.join('')
}
const result = toCamelStr('get-element-by-id')
console.log(result)