字符串常用方法

131 阅读5分钟
  1. 字面量的方式创建

           var str1 = 'QF001'
           console.log(str1)
    
       // 2. 内置构造函数的方式创建
       var str2 = new String('QF002')
       console.log(str2)
    
    
       // 字符串中也会有下标和length
       var str = 'QF123'
            //    01234
    
       console.log(str)
       console.log(str.length)
       console.log(str[0])
       console.log(str[4])
    
       // 字符串中只能通过下标访问到这个位置上的字符, 但是不能修改
       // str[0] = 'W'
    
       // console.log(str)
       
       /**
    

* 1. charAt

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

* 2. charCodeAt

     *      语法: 变量/字符串.charCodeAt(下标)
     *      作用: 根据下标去字符串中寻找对应的值, 然后找到这个值对应的 unicode 编码
     *      返回值: 如果找到返回 unicode 编码, 如果返回 NaN
     *

* 3. toLowerCase

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

* 4. toUpperCase

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

* 5. substr MDN 说明建议使用这个方法的时候, 更改为 substring

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

* 6. substring

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

* 7. slice

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

* 8. concat

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

* 9. indexOf

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

* 10. lastIndexOf

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

* 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(' '))    // ['value=QF001=QF002=QF003']
  /**

* 12. trim

         *      语法: 变量/字符串.trim()
         *      作用: 去掉字符串左右两边的空格
         *      返回值: 去掉空格后的字符串
         *

* 13. trimStart/trimLeft

         *      语法: 变量/字符串.trimStart()   /   变量/字符串.trimLeft()
         *      作用: 去掉字符串左边的空格  空格就是''符号里面到字符的空间
         *      返回值: 去掉空格后的字符串
         *

* 14. trimEnd/trimRight

         *      语法: 变量/字符串.trimEnd()     /   变量/字符串.trimRight()
         *      作用: 去掉字符串右边的空格
         *      返回值: 去掉空格后的字符串
        */       var str1 = ' 1 2 3 '  // 去掉的就是'   '符号到字符的空格
        
          /**

* 15. includes

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

* 16. startsWith

     *      语法: 变量/字符串.startsWith('要查询的一些字符')
     *      作用: 用于判断字符串开头是否为指定的字符
     *      返回值: true/false
     *

* 17. endsWith

     *      语法: 变量/字符串.endsWith('要查询的一些字符')
     *      作用: 用于判断字符串结尾是否为指定的字符
     *      返回值: true/false
     *

* 18. repalce

     *      语法: 变量/字符串.repalce('查找的字符串', '要替换的内容')
                             repalce('查找的字符串', '') 代表删除字符串
     *      作用: 去字符串中找到一个指定的内容, 然后将新的内容替换过去
     *      返回值: 修改好的字符串
   /**
     *  1. var str = 'XXX123XXX456XXX'
     *      这个字符串中, XXX 是一个违禁词, 我们需要将 XXX 替换为 **
     *          得到的内容: **123**456**
     *
     *
     *  2. var str = 'XXX123YYY456ZZZ'
     *      这个字符串中, XXX YYY ZZZ 全都是违禁词, 我们需要将 他们三个 替换为 **
     *          得到的内容: **123**456**
    */



    // 2. 这个字符串中, XXX YYY ZZZ 全都是违禁词, 我们需要将 他们三个 替换为 **
    var str = 'XXX123YYY456ZZZ789abc'

   

    var arr = ['XXX', 'YYY', 'ZZZ', 'abc', '789']  // 将违禁词组合为数组

    arr.forEach(function (item) {
        // console.log(item)
        while (str.includes(item)) {
            str = str.replace(item, '**')  
        }
    })

    console.log(str)












    // 1. 这个字符串中, XXX 是一个违禁词, 我们需要将 XXX 替换为 **; 得到的内容: **123**456**
    var str = 'XXX123XXX456XXX'

    while (str.includes('XXX')) {
        str = str.replace('XXX', '**')
        //str.replace('XXX', '**') 的返回值给改变就数组也就是改变自身,作为再次运行的条件
        /**只要满足条件'xxx'就会执行,不会检测到后面的
         *  第一次执行: str === **123XXX456XXX
         *  第二次执行: str === **123**456XXX
         *  第三次执行: str === **123**456**
         * 
         *  第四次执行, 条件不成立, 循环到此结束
        */
    }
    console.log(str)

padStart

    // var str="a";
    // 判断这个字符串长度是否满足指定的长度,如果不满足在前面补对应的字符
    // console.log(str.padStart(2,"0"))
    // 判断这个字符串长度是否满足指定的长度,如果不满足在后面补对应的字符
    // console.log(str.padEnd(2,"0"))