JS(字符串的常用方法)

169 阅读5分钟

字符串的常用方法

1. charAt

  • 语法: 变量/字符串.charAt(下标)
  • 作用: 根据下标去字符串中寻找对应的值
  • 返回值: 如果字符串中有对应的下标那么返回对应的值, 如果没有返回一个空字符
         var str = 'QF123'
                    01234

        var res = str.charAt(40)
        
        console.log(str[0])  // Q
        
        console.log('返回值: ', res)        // Q



2. charCodeAt

  • 语法:变量/字符串.charCodeAt(下标)
  • 作用:根据下标去字符串中寻找对应的值,然后找到这个值对应的unicode编码
  • 返回值:如果找到返回ubicode编码,如果找不到返回NaN
     var str = 'QF123'
     var res = str.charCodeAt(40)    // NaN
     var res = str.charCodeAt(0)  // 81
     console.log(res)

    

3.toLowerCase

  • 语法:变量/字符串.toLowerCase()
  • 作用:把字符串中所有的字母转换为小写
  • 返回值:转换后的字符串

4.toUpperCase

  • 语法:变量/字符串.toUpperCase()
  • 作用:把字符串中的所有字母转换为大写
  • 返回值:转换后的字符串
       var str = 'abcQWE'
       console.log('原字符串: ', str)
       console.log('toLowerCase: ', str.toLowerCase())
       console.log('toUpperCase: ', str.toUpperCase())
       console.log('原字符串: ', str)  

    

5.substr

  • 语法:变量/字符串.substr(开始下标,多少个)
  • 作用: 复制指定区域的字符串
  • 返回值:复制到的内容

6.substring

  • 语法:变量/字符串.substring(开始下标,结束下标)
  • 作用: 复制指定区域的字符串
  • 返回值:复制到的内容
  • 注意参数包前不包后,参数可以忽略不写

      var str = 'qwertyuiop'
      console.log(str.substr(2, 3))       //  从[2]开始, 截取 3 个:  ert
      console.log(str.substring(2, 3))    // 从[2]开始, 到 [3] 结束:  e
      console.log(str.substring(6, -1))    // 参数中不推荐写 负数
      console.log(str.substring(6))    // 从[6]开始, 到字符串末尾结束
      console.log(str.substring())    // 复制整个字符串
      

7.slice

  • 语法:变量/字符串.slice(开始下标,结束下标)
  • 作用:复制指定区域的字符串
  • 返回值:复制到的内容 -注意:

参数包前不包后;参数可以省略不写;参数可以有负数

var str = 'qwertyuiop'
 console.log(str.slice(2, 3))        // e
 console.log(str.slice(2))           // ertyuiop
 console.log(str.slice())            // qwertyuiop
 console.log(str.slice(5, -1))        // yuio



8.concat

  • 语法:变量/字符串.concat(数据1,数据2,数据3,数据4,数据5,......)
  • 作用:合并数据到执行的字符串中
  • 返回值:合并后的一个新字符串

 var str = 'QWE123Q'
 
  console.log(str.concat('!@#', 'asd', '+-*/'))  
  console.log('方法使用完毕后的源字符串: ', str)

9.indexOf

  • 语法:变量/字符串.indexOf('要查询的数据', 开始查询的位置(可以不传, 默认为0))
  • 作用: 帮我们去字符串中查询是否有这个数据
  • 返回值: 如果找到返回对应的下标, 如果找不到返回 -1

 var str = 'QWE123Q'
 console.log(str.indexOf('@'))   // -1
 console.log(str.indexOf('Q'))   // 0
 console.log(str.indexOf('Q', 3))   // 6
 

10.lastIndexOf

  • 语法: 变量/字符串.lastIndexOf('要查询的数据', 开始查询的位置(可以不传, 默认为字符串最后一个下标))
  • 作用: 帮我们去字符串中查询是否有这个数据
  • 返回值: 如果找到返回对应的下标, 如果找不到返回 -1
 var str = 'QWE123Q'
 console.log(str.lastIndexOf('@'))   // -1
 console.log(str.lastIndexOf('Q'))   // 6
 console.log(str.lastIndexOf('Q', 3))   // 0


    

11.split

  • 语法: 变量/字符串.split('分隔符')
  • 作用: 根据我们传递的分隔符, 将字符串做一个拆分
  • 返回值: 拆分好的字符串, 组成的一个数组
  • 注意: 如果传递的分隔符是一个空字符串, 那么会将整个字符串按照每一个字符, 拆分开, 放在一个数组中

 var str = 'value=QF001=QF002=QF003'

   console.log(str.split('=')) // ['value', 'QF001', 'QF002', 'QF003']
   
   console.log(str.split('@')) // ['value=QF001=QF002=QF003']
   
   console.log(str.split())    // ['value=QF001=QF002=QF003']
   
   console.log(str.split(''))  //  ['v', 'a', 'l', 'u', 'e', '=', 'Q', 'F', '0', '0', '1', '=', 'Q', 'F', '0', '0', '2', '=', 'Q', 'F', '0', '0', '3']
   
    console.log(str.split(' '))  
    
    console.log(str.split('&')) 

12 trim

  • 去掉字符串两边的空格
        var str1 = ' 1 2 3 '
        var str2 = '123'
        console.log('源字符串' + str2)
        console.log('源字符串' + str1)
        console.log('trim' + str1.trim())   // 去掉了字符串两边的空格
        
    

13.trimStart trimLeft

  • 去掉了字符串左边的空格
        var str1 = ' 1 2 3 '
        var str2 = '123'
        console.log('源字符串' + str2)
        console.log('源字符串' + str1)
        
        console.log('trimStart' + str1.trimStart()) // 去掉了字符串左边的空格
        console.log('trimLeft' + str1.trimLeft())   // 去掉了字符串左边的空格

        
        
    

14.trimEnd trimRight

  • 去掉了字符串右边的空格

        var str1 = ' 1 2 3 '
        var str2 = '123'
        console.log('源字符串' + str2)
        console.log('源字符串' + str1)
        
        console.log('trimEnd' + str1.trimEnd())         // 去掉了字符串右边的空格
        console.log('trimRight' + str1.trimRight())     // 去掉了字符串右边的空格

15.includes

  • 语法: 语法: 变量/字符串.includes('要查询的一些字符')
  • 作用: 用于判断字符串中是否包含一段字符
    
  • 返回值: true/false
    

var str = 'qwe123!@#$%^&*()asd'

   console.log(str.includes('QF001'))  // false
   
   console.log(str.includes('!@#$%^&*'))  // true
   
   console.log(str.includes('qweasd'))  // false
   
   console.log(str.includes('qwe123'))  // true

16.startsWith

  • 语法: 变量/字符串.startsWith('要查询的一些字符')
  • 作用: 用于判断字符串开头是否为指定的字符
  • 返回值: true/false
    
var str = 'qwe123!@#$%^&*()asd'
console.log(str.startsWith('q'))        // true
console.log(str.startsWith('qwe123'))   // true
console.log(str.startsWith('qweasd'))   // false

    

17.endwith

  • 语法: 变量/字符串.endsWith('要查询的一些字符')
  • 作用: 用于判断字符串结尾是否为指定的字符
  • 返回值: true/false
var str = 'qwe123!@#$%^&*()asd'

console.log(str.endsWith('asd'))            // true
 
console.log(str.endsWith('asdrtyuiop'))     // false

18.repalce

  • 语法: 变量/字符串.repalce('查找的字符串', '要替换的内容')
  • 作用: 去字符串中找到一个指定的内容, 然后将新的内容替换过去
  • 返回值: 修改好的字符串

 var str = 'QF001QF001QF001QF001QF001QF001QF001'

 var res = str.replace('QF', '***')
 console.log(res)

替换违禁词案例

   /**
         *  1. var str = 'XXX123XXX456XXX'
         *      这个字符串中, XXX 是一个违禁词, 我们需要将 XXX 替换为 **
         *          得到的内容: **123**456**
         *
         *
         *  2. var str = 'XXX123YYY456ZZZ'
         *      这个字符串中, XXX YYY ZZZ 全都是违禁词, 我们需要将 他们三个 替换为 **
         *          得到的内容: **123**456**
        */
        
        //1
        var = 'XXX123XXX456XXX'
        while(str.includes('XXX')){
            str = str.replace('XXX','**')
        }

        console.log(str)
        
        
        //2 
        var str = 'XXX123YYY456ZZZ'
        
        var arr =['XXX','YYY','ZZZ']
        
            arr.forEach(function(item)){
                while(str.include(item)){
                    str=str.replace(item,'**')
            }
          })
          console.log(str)