字符串常用方法及数学方法

140 阅读5分钟

字符串常用方法

  1. charAt

    • 语法: 变量/字符串.charAt(下标)
    • 作用: 根据下标去字符串寻找对应的值
    • 返回值: 如果字符串中有对应的下标那么返回对应的值,如果没有返回一个空字符串
    // charAt
    var str = 'sahbiddaklsdj'
    var res = str.charAt(40)
    console.log(str[0])
    console.log('返回值: ',res)
  1. charCodeAt
    • 语法: 变量/字符串.charCodeAt(下标)
    • 作用: 根据下标取字符串中寻找对应的值, 然后找到这个值对应的 unicode 编码
    • 返回值: 如果找到返回 unicode 编码, 如果返回 NoN
    // charCodeAt
    var str = 'QF001'
    var res = str.charCodeAt(40)    // NoN
    var res = str.charCodeAt(0)      // 81
    console.log(res)
  1. toLowerCase
    • 语法: 变量/字符串.toLowerCase()
    • 作用: 把字符串中所有的字母转换为小写
    • 返回值: 转换后的字符串
    // toLowerCase
    var str = 'abcQWE'
        console.log('原字符串: ', str)
        console.log('toLowerCase: ', str.toLowerCase())
        console.log('toUpperCase: ', str.toUpperCase())
        console.log('原字符串: ', str)
  1. toUpperCase
    • 语法: 变量/字符串.toUpperCase()
    • 作用: 把字符中所有的字母转换为 大写
    • 返回值: 转换后的字符串
    // toUpperCase
    var str = 'abcQWE'
        console.log('原字符串: ', str)
        console.log('toLowerCase: ', str.toLowerCase())
        console.log('toUpperCase: ', str.toUpperCase())
        console.log('原字符串: ', str)
复制到的内容
  1. substr(MDN 说明建议使用这个方法的时候, 更改为 substring)

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

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

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

        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

查询数据

  1. concat

    • 语法:变量/字符串.concat(数据1, 数据2, 数据3, 数据4. 数据5.......)
    • 作用: 合并数据到执行的字符串
    • 返回值: 合并后的一个新字符串
    // concat
    var str = 'value=QF001=QF002=QF003'
    console.log(str.concat('!@#!', 'asd', '+-*/'))
    console.log('方法使用完毕后的源字符集:' , str)
  1. indexOf

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

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

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

去空格

  1. trim
    • 语法: 变量/字符串.trim()
    • 作用: 去掉字符串左右两边的空格
    • 返回值: 去掉空格的字符串
    
        var str1 = ' 1 2 3 '
        var str2 = '123'
        console.log('源字符串' + str2)
        console.log('源字符串' + str1)


        console.log('trim' + str1.trim())   // 去掉了字符串两边的空格
  1. triimStart/trimLeft

    • 语法: 变量/字符串.trimStart() //变量/字符串.trimLeft()
    • 作用: 去掉字符串两边的空格
    • 返回值: 返回空格后的字符串
  2. trimEnd/trimRigrht

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

查询判断字符

  1. includes

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

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

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

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

替换违禁词

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

Math 数学对象

  • Math.random() (返回一个 0-1的随机小数(不包含1))
  • Math.round() (四舍五入)
  • Math.ceil() (向上取整)
  • Math.floor() (向下取整)
    封装一个随机函数
    
        要求: 0 ~ 10 以内的一个随机证书(包括10)
        
    function fn() {
        var num = Math.random     0~1之间随机取整
        num *= 10      // 在 0 ~10 之间随机取整
        num = Math.round(num)    // 将取到的数字进行四舍五入
    }
    
    var obj = {}
    for(var i = 1; i < 11000; i ++){
        var key = fn()       // 每次循环开始创建一个随机数
        obj[key] = obj[key] ? obj[key] + 1 : 1
    }
    console.log(obj)