字符串常用方法(详解版)

118 阅读6分钟

字符串

1.创建字符串

  • 创建方法:

    • 1.字面量的形式创建字符串

      • var str = 'abc'
    • 2.内置构造函数的形式创建字符串

      • var str = new String() //空字符串
      • var str = new String('abc') //有内容的字符串

2.字符串的length与下标

  • length:长度
  • 索引:(下标):获取字符串中指定位置的值
    • 注意:字符串中通过索引能够获取刀指定位置的值,只不过获取到的值是 只读的,不能修改它的值
      • var str = 'abc' console.log(str.length) // 索引长度 3

      • str[1] = 'q' // 字符串只能读不能修改他的值 console.log(str)

3.字符串常用方法

  • charAt / charCodeAt / toLowerCase / toUpperCase
    • 1.charAt(了解)

      • 语法: 字符串.charAt(索引)

      • 作用: 查询指定下标的值

      • 返回值: 查询到的值,如果没有查询到那么就是一个空字符串

          var str = 'abc'
          var str1 = str.charAt(0)
          console.log(str1)           // a
        
          var str2 = str.charAt(50)
          console.log(str2)           // 查询不到,返回空字符串
        
    • 2.charCodeAt(了解)

      • 语法: 字符串.charCodeAt(索引)

      • 作用: 查询指定下标的值对应的十进码

      • 返回值: 查询到的值对应的十进码,如果没查询到会返回一个NaN

          var str = 'abc'
          var str1 = str.charCodeAt(0)
          console.log(str1)               // 字符串a的十进制码  97
        
          var str1 = str.charCodeAt(50)
          console.log(str1)               // 查询不到,返回NaN
        
    • 3.toLowerCase

      • 语法: 字符串.toLowerCase()

      • 作用: 将这个字符串转换为小写

      • 返回值: 转换后的字符串

          var str = 'abcDEF'
          var str1 = str1.toLowerCase()
          console.log(str1)               // abcdef
        
    • 4.toUpperCase

      • 语法: 字符串.toUpperCase()

      • 作用: 将这个字符串转换为大写

      • 返回值: 转换后的字符串

          var str = 'abcDEF'
          var str1 = str1.toUpperCase()
          console.log(str1)               // ABCDEF
        

------------------------------------------------------------------------------------------------------>

  • substr / substring / slice
    • 5.substr

      • 语法: 变量.substr(开始索引, 截取多少个)

      • 作用: 截取字符串

      • 返回值: 截取出来的字符串

          var str = 'abcdefgh'
          var str1 = str.substr(0,3)      // 从下标0开始,截取3个
          console.log(str1)               // abc
        
    • 6.substring

      • 语法: 变量.substr(开始索引, 结束索引)

      • 作用: 截取字符串

      • 返回值: 截取出来的字符串

      • 注意: *1.参数包前不包后
        *2.结束索引可以不写,相当于写了length

          var str = 'abcdefgh'
          var str1 = str.substring(0,3)
          console.log(str1)               // abc  包前不包后
        
          var str2 = str.substring(0)
          console.log(str2)               // abcdefgh  从下标0开始,结束索引因为没有传递,所以默认是Length,也就是从下标0开始,一直到字符
        
    • 7.slice

      • 语法: 变量.slice(开始索引, 结束索引)

      • 作用: 截取字符串

      • 返回值: 截取出来的字符串

      • 注意: 1.包前不包后 2.结束索引可以不写,相当于写了length 3.开始索引可以不写,相当于写了0 4.结束索引支持写负数,相当于Length +负数

          var str = 'abcdefgh'
          
          var str1 = str.slice(0,3)           
          console.log(str1)                   // abc  从下标0开始,到下标3结束(包前不包后)
        
          var str2 = str.slice(0)
          console.log(str2)                   // abcdefgh  从下标0开始,因为没写结束索引,所以默认为Length
        
          var str3 = str.slice()
          console.log(str3)                   // abcdefgh 开始索引不写,默认为0,结束索引不写,默认为Length
        
          var str4 = str.slice(0,-3)
          console.log(str4)                   // abcde  开始索引 0,结束索引length + (-3)= 5 
        

------------------------------------------------------------------------------------------------>

  • concat / indexOf / lastIndexOf / split
    • 8.concat

      • 语法: 变量.concat(字符串1, 字符串2)

      • 作用: 拼接字符串

      • 返回值: 拼接好的字符串

          var str = 'qwer'
          var str1 = str.concat('1'+'@') 
          console.log(str1)               // qwer1@
        
    • 9.indexOf

      • 语法: 变量.indexOf(查找的字符, 开始索引)

      • 作用: 查找当前字符串中是否包含指定字符

      • 返回值: 找到返回第一次出现的首字母索引位置, 找不到就返回 -1

      • 注意: 第二个参数可以不传递,默认为0

          var str = 'qwer'
          var str1 = str.indexOf('q',1)
          console.log(str1)                   // -1 在字符串str中,下标1的位置,开始查找字符‘q'
        
          var str1 = str.indexOf('q',0)
          console.log(str1)                   // 0  在字符串str中,下标0的位置,开始查找字符‘q'
        
          var str1 = str.indexOf('q')
          console.log(str1)                   // 0 第二个参数没有传递,默认为0
        
    • 10.lastIndexOf

      • 语法: 变量.lastIndexOf(查找的字符, 开始索引)

      • 作用: 查找当前字符串中是否包含指定字符 (从后往前)

      • 返回值: 找到返回第一次出现的首字母索引位置, 找不到就返回 -1

      • 注意: 第二个参数可以不传递,默认为length - 1

          var str = 'qwer'
          var str1 = str.lastIndexOf('e',1)
          console.log(str1)                       // -1 在字符串str中,下标1的位置。开始查战字符'e',从右向左查找
        
          var str1 = str.indexOf('e')
          console.log(str1)                       // 2 第二个参数没有传递,默认为0
        
    • 11.split

      • 语法: 变量.split('分隔符')

      • 作用: 把字符串按照分隔符分开为几段内容

      • 返回值: 将字符串分割后以数组的形式分隔

      • 注意: 参数如果传递的是 空字符串('')会将字符串全部分隔开

          var str = 'jkj, kjkl, opio, juoiu'
        
          var str1 = str.split(',')       // 通过 , 将字符串str分隔到一个数组中
          console.log(str1)        // ['jkj', ' kjkl', ' opio', ' juoiu']  
        
          var str2 = str.split('l')       // 通过 i 将字符串str分隔到一个数组中
          console.log(str2)        // ['jkj, kjk', ', opio, ', 'uoiu']   
        
          var str3 = str.split(' ')       // 通过 一个空格 将字符串str分隔到一个数组中
          console.log(str3)       // ['jkj,', 'kjkl,', 'opio,', 'juoiu']
        
          var str4 = str.split('')        //传递的是一个空字符串,会将这个字符串全部分隔开,放在一个数组中
          console.log(str4)       //['j', 'k', 'j', ',', ' ', 'k', 'j', 'k', 'l', ',', ' ', 'o', 'p', 'i', 'o', ',', ' ', 'j', 'u', 'o', 'i', 'u']
        
          var str5 = str.split('@')       // 通过 @ 将字符串str分隔到一个数组中
          console.log(str5)       // ['jkj, kjkl, opio, juoiu']
        

---------------------------------------------------------------------------------------------------->

  • trim / trimStart / trimEnd
    • 12.trim

      • 语法: 变量.trim()

      • 作用: 把字符串左右空格去除

      • 返回值: 去除空格后的字符串

          var str = ' a b c '
          var str1 = str.trim()
          console.log(str1)
        
    • 13.trimStart(trimLeft)

      • 语法: 变量.trimStart()

      • 语法: 变量.trimLeft()

      • 作用: 把字符串左边空格去除

      • 返回值: 去除左边空格后的字符串

          var str = ' a b c '
          var str1 = str.trimStart()
          console.log(str1)
        
          var str2 = str.trimLeft()       
          console.log(str2)
        
    • 14.trimEnd(trimRight)

      • 语法: 变量.trimEnd()

      • 语法: 变量.trimRight()

      • 作用: 把字符串右边空格去除

      • 返回值: 去除右边空格后的字符串

          var str = ' a b c '
          var str1 = str.trimEnd()
          console.log(str1)
        
          var str2 = str.trimRight()       
          console.log(str2)
        

--------------------------------------------------------------------------------------------------------------->

  • includes / startsWith / endsWith / repalce
    • 15.includes

      • 语法: 字符串.includes(字符串片段)
      • 作用: 该字符串中是否包含该字符串片段
      • 返回值: 一个布尔值
        • true: 包含

        • false: 不包含

          var str = 'qwertyuiop' var str1 = str.includes('tyui') console.log(str1) // true

          var str2 = str.includes('tyuip') console.log(str2) // false

    • 16.startsWith

      • 语法: 字符串.startsWith(字符串片段)
      • 作用: 判断该字符串是否以该字符串片段开头
      • 返回值: 一个布尔值
        • true: 是开头

        • false: 不是开头

          var str = 'qwertyuiop' var str1 = str.startsWith('qw') console.log(str1); // true

          var str2 = str.startsWith('wer') console.log(str2); // false

    • 17.endsWith

      • 语法: 字符串.endsWith(字符串片段)
      • 作用: 判断该字符串是否以该字符串片段结尾
      • 返回值: 一个布尔值
        • true: 是结尾

        • false: 不是结尾

          var str = 'qwertyuiop' var str1 = str.endsWith('op') console.log(str1); // true

          var str2 = str.endsWith('io') console.log(str2); // false

    • 18.replace

      • 语法: 字符串.replace('要被替换的字符',替换的字符)

      • 作用: 找到当前字符串中第一个参数对应的值,然后将其替换为第二个参数

      • 返回值: 替换完成的字符串

          var str = 'abcdefg'
        
          var str1 = str.replace('abc','@@!!##')
          console.log(str1)                       // @@!!##defg
        
          var str2 = str.replace('qwer','@@!!##')
          console.log(str2)                       // abcdefg