JS 字符串方法 - 个人知识记录

145 阅读3分钟

一、属性

1、length 获取长度

语法:string.length

  • 返回数字
    const str = 'abc'
    console.log(str.length) // 3

二、判断

1、includes() 是否包含字符

  • 返回布尔值

语法:string.includes(searchvalue, start)

  • searchvalue:
    • 必需
    • 查找的字符串;
  • start:
    • 可选
    • 开始查找的位置,默认为 0。
    const str = 'abc'
    console.log(str.includes('a')) // true
    console.log(str.includes('z')) // false
    console.log(str.includes('c', 1)) // true

2、startsWith() 判断开头字符串

  • 返回布尔值

语法:String.startsWith('string')

    const str = 'abc'
    console.log(str.startsWith('a')) // true
    console.log(str.startsWith('b')) // false

3、endsWith() 判断结尾字符串

  • 返回布尔值

语法:String.endsWith('string')

    const str = 'abc'
    console.log(str.endsWith('c')) // true
    console.log(str.endsWith('b')) // false

三、获取字符串

1、charAt() 获取指定下标字符

语法:string.charAt(index)

  • index:下标值(从0开始)
    const str = 'abc'
    console.log(str.charAt(0)) // a

扩展

1.1、方括号获取指定下标字符

语法:string[index]

区别:

    const str = 'abc'
    console.log(str.charAt(5)) // ''
    console.log(str[5])// undefined

2、charCodeAt() 获取指定下标字符的Unicode值

语法:string.charCodeAt(index)

    const str = 'abc'
    console.log(str.charCodeAt(0)) // 97

3、slice() 获取指定(始~末)下标字符串

  • 返回新字符串

语法:string.slice(start,end)

  • start:
    • 必须
    • 起始下标(包含);如果为负,倒序起始
  • end:
    • 可选
    • 截取片段的结尾下标(不包含);如果为负,倒序起始
    const str = 'abc'
    console.log(str.slice(1)) // bc
    console.log(str.slice(1, 2)) // b
    console.log(str.slice(-2)) // bc
    console.log(str.slice(1, -1)) // b

4、substr() 获取指定长度字符串

语法:string.substr(start,length)

  • start:
    • 必需
    • 起始下标。必须是数值。如果为负,倒序起始
  • length:
    • 可选
    • Number类型,截取的长度
    const str = 'abc'
    console.log(str.substr(1, 1)) // b
    console.log(str.substr(-1, 1)) // c

5、concat() 字符串拼接

语法:string.concat(string1, string2, ..., stringX)

    const str1 = 'abc'
    const str2 = 'def'
    const new_str = str1.concat(str2)
    console.log(new_str) // abcdef

拓展

1.1、+ 拼接

    const str1 = 'abc'
    const str2 = 'def'
    const new_str = str1 + str2
    console.log(new_str) // abcdef

6、replace() 替换

语法:string.replace(String/RegExp, String)

  • String/RegExp:
    • 必需
    • 字符串或正则;
  • String:
    • 必需
    • 一个字符串值。规定了替换文本或生成替换文本的函数。

7、trim()、trimStart()和trimEnd() 去空格

    const str = ' abc '
    console.log(str.trim()) // abc

四、获取数组

1、split() 分割字符串

  • 返回数组
  • 不改变原始字符串

语法:string.split(separator,limit)

  • separator:
    • 必需
    • 字符串或正则表达式,从该参数指定的地方分割
  • limit:
    • 可选
    • 可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
const str = "abcdef";
str.split("c");    // ["ab", "def"]
str.split("", 4)   // ['a', 'b', 'c', 'd'] 

2、match() 返回匹配字符串数组

  • 返回数组

语法:string.match(regexp)

    const str = 'abca'
    console.log(str.match('a')) // ['a', index: 0, input: 'abca', groups: undefined]
    console.log(str.match(/a/g)) // ['a', 'a']

五、获取下标

1、indexOf() 查找字符

  • 返回第一次匹配到的下标
  • 没有返回-1

语法:string.indexOf(searchvalue,fromindex)

  • searchvalue:
    • 必需
    • 查找的字符串
  • fromindex:
    • 可选
    • 参数为整数
    • 开始检索的位置,取值范围(0 到 string.length - 1),默认为0;
const str = "abcdefgabc";
console.log(str.indexOf("a"));   // 输出结果:0
console.log(str.indexOf("z"));   // 输出结果:-1
console.log(str.indexOf("c", 4)) // 输出结果:9

2、lastIndexOf() 查找字符(倒序)

  • 与indexof()一样,查找顺序相反

3、search() 正则匹配返回下标

语法:string.search(ragExp)

  • 返回第一个匹配的位置
  • 不能使用g(全局匹配)
    const str = 'abca'
    console.log(str.search(/a/)) // 0

六、转换

toUpperCase() 和 toLowerCase() 字符串转大小写

    const str = 'Abc'
    console.log(str.toLowerCase()) // abc
    console.log(str.toUpperCase()) // ABC