javascript - 字符串的常用方法

168 阅读5分钟

创建字符串

  • 字面量创建

    • var str = 'abc'
  • 函数构造

  • 字符串也有length和索引,代表的意义和数组是一样的

  • 字符串可以通过索引获取到指定位置上的值,但是是只读的,修改不了

字符串的常用方法
  • charAt
    • 语法:字符串.charAt(索引)
    • 作用:查询指定下标的值
    • 返回值:查询到的值,如果没有查找到就是一个 空字符串
  • charCodeAt
    • 语法:字符串.charCodeAt(索引)
    • 作用: 查询指定下标的值 对应的十进制码
    • 返回值: 查询到的值对应的十进制码,如果没有查询到返回NaN
  • toLowerCase
    • 语法: 字符串.toLowerCase()
    • 作用: 将这个字符串转换为小写
    • 返回值: 转换后的字符串
  • toUpperCase
    • 语法: 字符串.toUpperCase
    • 作用: 将这个字符串转换为大写
    • 返回值: 转换后的字符串
  • substr
    • 语法: 字符串.substr(开始索引,多少个)
    • 作用: 截取指定的字符串
    • 返回值: 截取到的字符串
    • 注意:
      • 官方说明,这个方法将来某一天会删除,建议使用 substring
  • substring
    • 语法: 字符串.slice(开始索引,结束索引)
    • 作用: 截取指定的字符串
    • 返回值: 截取到的字符串
    • 注意:
      • 1: 参数包前不包后
      • 2: 结束索引可以不写,默认是length
  • slice
    • 语法: 字符串.slice(开始索引,结束索引)
    • 作用: 截取指定字符串
    • 返回值: 截取到的字符串
    • 注意:
      • 1: 参数包前不包后
      • 2: 结束索引可以不写
      • 3: 开始索引可以不写,相当于写了0
      • 4: 结束索引支持写负数,相当于length + 负数
  • concat
    • 语法: 字符串.concat(数据1,数据2,数据3...)
    • 作用: 将字符串和参数传递的数据进行拼接
    • 返回值: 拼接后的字符串
  • indexOf
    • 语法: 字符串.indexOf(数据,开始下标)
    • 作用: 寻找数据在字符串第一次出现的位置
    • 返回值: 找到的数据的索引,如果没有找到返回-1
    • 注意:
      • 第二个参数可以不传递,默认为0
  • lastIndexOf
    • 语法:字符串.lastIndexOf(数据,开始索引)
    • 作用: 寻找数据在字符串中的位置(从后往前)
    • 返回值: 找到的数据的索引,如果没有找到返回-1
    • 注意:
      • 第二个参数可以不传递,默认为length - 1
  • split
    • 语法: 字符串.split('符号')
    • 作用: 在字符串中找到这个符号,然后将这个字符串分割,并放在一个数组内
    • 返回值: 一个数组
      • 注意:参数如果传递的是一个空字符串 '' ,那么会将字符串全部分隔开
      • 如果传递的符号字符串内没有,那么会将整个字符串放在数组内
  • trim
  • 语法: 字符串.trim()
    • trimStart
    • 作用: 去掉字符串两侧的空格
    • 返回值: 去掉空格后的字符串
  • trimStart
    • 语法: 字符串.trimStart()
    • 作用: 去掉字符串开始时候的空格
    • 返回值: 去掉空格后的字符串
  • trimEnd
    • 语法: 字符串.trimEnd()
    • 作用: 去掉字符串结尾的空格
    • 返回值: 去掉空格后的字符串
  • includes
    • 语法: 字符串.includes(字符串片段)
    • 作用: 判断当前字符串中,是否拥有指定字符串片段
    • 返回值: 一个布尔值
  • startsWith
    • 语法: 字符串.startsWith(字符串片段)
    • 作用: 判断字符串的开头是不是指定片段
    • 返回值: 一个布尔值
  • endsWith
    • 语法: 字符串.endsWith(字符串片段)
    • 作用: 判断字符串的结尾是不是指定片段
    • 返回值: 一个布尔值
  • replace
    • 语法: 字符串.replace(要被替换的值,替换的值)

    • 作用: 找到字符串中的第一个参数,然后替换成第二个参数

    • 返回值: 替换后的字符串, 如果没有找到第一个参数,那么返回的是原字符串

        // 1: charAt 查询指定下标值
        var str = 'abcd'
        console.log(str.charAt(1));
        var str1 = str.charAt(20)
        console.log(str1);   //空字符串,因为没有20这个索引

        // 2: charCodeAt 值对应的十进制码
        var str = 'qwer'
        console.log(str.charCodeAt(1));
        var str1 = str.charCodeAt(50)
        console.log(str1);  //NaN

        // 3: toLowerCase  转换为小写
        var str = 'QWER'
        console.log(str.toLowerCase());

        // 4: toUpperCase  转换为大写
        var str = 'asdf'
        console.log(str.toUpperCase());

        // 5: substr 截取的字符串
        var str = 'asdfghjkl'
        console.log(str.substr(0,2));  //从索引0开始,截取两个
        console.log(str.substr(3,3));

        // 6: substring 截取字符串
        var str = 'qwertyuiop'
        var str1 = str.substring(0,5)
        console.log(str1);
        var str2 = str.substring(0)
        console.log(str2);
        var str3 = str.substring()
        console.log(str3);

        // 7: slice 截取字符串
        var str = 'zxcvbnm'
        var str1 = str.slice(1,5)
        console.log(str1);
        var str2 = str.slice()
        console.log(str2);
        var str3 = str.slice(2,-2)
        console.log(str3);

        // 8: concat 拼接字符串
        var str = 'qwer'
        console.log(str.concat('a','s','d','f'));

        // 9: indexOf 查找索引
        var str = 'qwer'
        // var str1 = str.indexOf('q',1) //这里因为设置的是从索引1开始查找,但是q是索引0,所以找不到
        // console.log(str1);  //这里值会返回-1
        // var str2 = str.indexOf('r',0)
        // console.log(str2);  //3
        var str3 = str.indexOf('w')
        console.log(str3);

        // 10: lastIndexOf 查找索引
        var str = 'asdfgh'
        var str1 = str.lastIndexOf('f',1) //这里是设置的从下标1开始查找,但是是从右往左,所以找不到
        console.log(str1);  //值会返回-1
        var str2 = str.lastIndexOf('g')  //这里没写第二个参数,默认length -1
        console.log(str2);  
        var str3 = str.lastIndexOf('d',3)
        console.log(str3);

        // 11: split 分割字符串放入数组
        var str = 'qwer, tyui, op, asdf, ghjk'
        var str1 = str.split(',')
        console.log(str1);
        var str2 = str.split(' ')
        console.log(str2);
        var str3 = str.split('o')
        console.log(str3);
        var str4 = str.split('')
        console.log(str4);
        
        // 12: trim 去掉字符串两侧的空格
        var str = ' a b c '
        console.log(str.trim());
        
        // 13: trimStart 去掉字符串开始的空格
        var str = ' a b c '
        console.log(str.trimStart());
        
        // 14: trimEnd 去掉字符串结束位置的空格
        var str = ' a b c '
        console.log(str.trimEnd());
        
        // 15: includes判断
        var str = 'qwertyuiop'
        console.log(str.includes('tyu'));
        console.log(str.includes('tyuo'));
        
        // 16: startsWith 判断开头
        var str = 'qwertyuiop'
        console.log(str.startsWith('qw'));
        console.log(str.startsWith('wer'));
        
        // 17: endsWith 判断结尾
        var str = 'qwertyuiop'
        console.log(str.endsWith('p'));
        console.log(str.endsWith('o'));
        
        // 18: replace 替换
        var str = 'abcdefg'
        var str1 = str.replace('abc','qwe')
        console.log(str1);
        var str2 = str.replace('qwe','123')
        console.log(str2);