字符串常用方法

at

  • 接收一个整数作为参数,返回一个新字符串
  • 参数范围为0 ~ String.length-1,不传参默认为0,超出返回undefined
    1
    2
    3
    const str = 'abcde'
    console.log(str.at(1)) // 'b'
    console.log(str.at(-2)) // 'd'

charAt

  • 从一个字符串中返回指定字符
  • 接收一个整数作为参数,范围为0 ~ String.length-1,不传参默认为0,超出返回空字符串

indexOf & lastIndexOf

  • indexOf查找给定字符串第一次匹配位置,位置以给定字符串的第一个字符位置为返回,区分大小写
  • indexOf参数:searchString;fromIndex,开始查找的位置,默认0,范围0~string.length,< 0则从0向后开始查找,> string.length则从string.length开始向后查找,结果返回-1
    1
    2
    3
    4
    let str = 'Hello World!'
    console.log(str.indexOf('o')) // 4
    console.log(str.indexOf('o', -1)) // 4
    console.log(str.indexOf('o', 11)) // -1
  • lastIndexOf查找给定字符串最后一次匹配位置,位置以给定字符串的第一个字符位置为返回,区分大小写
  • lastIndexOf参数:searchString;fromIndex,开始查找的位置,默认string.length,范围0~string.length,< 0则从0开始向前查找,结果返回-1,> string.length则从string.length开始向前查找
    1
    2
    3
    4
    let str = 'Hello World!'
    console.log(str.lastIndexOf('o')) // 7
    console.log(str.lastIndexOf('o', -1)) // -1
    console.log(str.lastIndexOf('o', 11)) // 7

includes

  • 是否包含searchString,返回true or false,区分大小写
  • 参数:searchString;position,从当前字符串的哪个索引位置开始搜寻子字符串,默认值为 0

endsWith & startsWith

  • 区分大小写
  • endsWith:判断当前字符串是否是以另外一个给定的子字符串结尾的,结果返回true or false。参数:searchString;length(可选),作为str的长度
    1
    2
    3
    let str = 'Today is cloudy!'
    console.log(str.endsWith('Today', 5)) // true
    console.log(str.endsWith('Today', 4)) // false
  • startsWith: 判断当前字符串是否是以另外一个给定的子字符串开头的,结果返回true or false。参数:子字符串;position(可选),作为str开始的位置

concat

1
2
3
const strArr = ['a', 'b', 'c']
let str = ''.concat(...strArr)
console.log(str)

split

  • 使用指定的分隔符字符串将一个String对象分割成子字符串数组,且不会改动原字符串
  • 参数:separator;limit,限制返回的分割片段数量
    1
    2
    3
    4
    const str = 'Hel lo World!'
    const words = str.split(' ', 2)
    console.log(words) // Array ["Hel", "lo"]
    console.log(str) // "Hel lo World!"

slice

  • 提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串
  • 参数:startIndex,如果值为负数,会被当做 strLength + startIndex 看待;endIndex,如果该参数为负数,则被看作是 strLength + endIndex
    1
    2
    3
    4
    const str = 'Hello world'
    console.log(str.length) // 11
    console.log(str.slice(-1, 2)) // ''
    console.log(str.slice(4, 7)) // 'o w'

substring

  • 返回一个在开始索引到结束索引之间的一个字符串,或从开始索引直到字符串的末尾的一个字符串。
  • 参数:startIndex;endIndex
  • 注意:
    • startIndex === endIndex,返回一个空字符串
    • startIndex > endIndex,执行结果相当于两个参数进行调换的结果
    • 小于0当作0,大于string.length当作string.length
      1
      2
      3
      const strArr = 'Hello World!'
      console.log(strArr.substring(3, 1)) // 'el'
      console.log(strArr.substring(1, 3)) // 'el'

toLowerCase

  • 小写

toUpperCase

  • 大写

replace

  • 返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串
  • 参数:
    • regexp(pattern):一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。
    • substr(pattern):一个将被 newSubStr 替换的字符串。仅第一个匹配项会被替换。
    • newSubStr(replacement):用于替换掉第一个参数在原字符串中的匹配部分的字符串。
    • function(replacement):一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。

match

  • 检索返回一个字符串匹配正则表达式的结果
  • 相比search,可通过Regx实现更灵活
    1
    2
    let str = 'Hello World!'
    console.log(str.match(/[A-Z]/g)) // Array ["H", "W"]
  • 执行正则表达式和 String 对象之间的一个搜索匹配
  • 匹配则返回关键词在目标字串中第一次出现的位置,如果不匹配,就返回-1

trim

  • 从一个字符串的两端删除空白字符,包括行终止符

trimStart & trimEnd


valueOf & toString

  • valueOf:返回 String 对象原始值
  • toString:返回指定对象的字符串形式。

padStart & padEnd

  • 填充字符串
  • padStart
    • 参数:
      • targetLength:当前字符串需要填充到的目标长度,如果< string.length,则返回当前字符串本身长度
      • padString:填充字符串,如果填充字符串长度超过了targetLength,则进行截取
    • 返回一个新的填充字符串
  • padEnd:
    • 同理

parseInt & parseFloat

  • 待补充