字符串方法总结-1

107 阅读4分钟

07.字符串常用方法总结

字符串所有的方法都不会改变原字符串,而是返回新的字符串

  1. 拼接字符串:
  • 拼接字符串最直观的方式就是使用+拼接
  1. 字符串截取方法:
  • slice: 截取字符串

    • 接受两个参数,分别代表起始下标和结束下标(两个参数的数学区间是前闭后开的[)
    • 只写一个参数,代表开始截取的起始位置,然后直接截取到末尾
    • 第一个参数为负,代表从后向前数开始截取的位置,截取还是向后截
    • 第二个参数为负,代表从后向前数确定结束位置
  • 例子

<script>
      var src = "abcderfsg";
      src.slice(1, 2); //b
      console.log(src.slice(1, 2));
      src.slice(1); //bcderfsg
      console.log(src.slice(1));
      src.slice(-2); //sg
      console.log(src.slice(-2));
      src.slice(-5, 7); //erf
      console.log(src.slice(-5, 7));
      src.slice(1, -1);//bcderfs
      console.log(src.slice(1, -1));
       src.slice(3, -7);//截取不到数据
      console.log( src.slice(3, -7));
    </script>

  • 总结:解析解构str.slice(参数1, 参数2)第一个参数代表起始的位置,无论正负都是起始的位置,第二个参数是结束的位置,截取的数据就是它们包住的数据,执行方法的返回值就是截取的值。

  • substring

    • 接受两个参数,分别代表起始下标和结束下标(不包含结束下标)
    • 只写一个参数,代表开始截取的起始位置,然后直接截取到末尾
    • substring会忽略负值,把负值转为0
    • 如果第二个参数小于第一个参数,则交个参数的顺序(起始和结束位置相比较的大小无法确定的时候可以使用substring)
  1. 字符串大小写转换
  • toLowerCase():把字符串中所有的字符转小写
  • toUpperCase():把字符串中所有的字符转大写
  1. 字符串查找方法:
  • 下标方式(推荐),直接通过 需计算成员访问运算符([]) 获取某个下标的字符串,如果获取不到,则返回undefined,字符串是有点类似于数组的,它每一个都有一个下标
  • indexOf方法,接受一个字符串作为参数,判断调用indexOf方法的字符串中是否存在当前字符串参数,如果存在则返回第一次出现的下标,否则返回-1
    • 例:str.indexOf("字符串中字符")
  • search方法和indexOf的功能是相同的,查找指定字符串第一次出现的位置,但是可以接受正则表达式查找,search的底层仍然使用的是indexOf,所以如果不是正则查找,则使用indexOf即可 例:
      var str = "hel3lo 1 word 2 666 good";
      var reg1 = /[0-9]+/g; //匹配一个或多个数字
      console.log(str.search(reg1));//输出的结果是:3,只会输出查找的第一个
  • macth方法,接受正则表达式作为参数,把所有查找到的字符串,组成一个数组返回,如果一个都查不到,则返回null,例:
      var str = "hel3lo 1 word 2 666 good";
      var reg1 = /[0-9]+/g; //匹配一个或多个数字
      console.log(str.match(reg1)); //["3","1","2","666"]
  • replace方法,用来把查找到的字符串进行替换,接受的第一个参数是正则用来查找被替换的字符串,第二个参数是替换的字符串(第二个参数也可以是一个函数,函数的参数就是当次查找的值,函数的返回值就是当次替换的值)
基础使用
      var str = "我是小猪佩奇,我的弟弟是乔治";
      var reg3 = /小猪/g;
      console.log(str.replace(reg3, "**")); //我是**佩奇,我的弟弟是乔治
      var res = str.replace(reg3, "**");
      console.log(res);//我是**佩奇,我的弟弟是乔治
函数参数
      var str1 = "我是佩奇,这个是我的弟弟乔治";
      var reg4 = /佩奇|乔治/g;
      var result = str1.replace(reg4, function (value) {
        console.log("shuzu ",value);//打印的是替换的值,value是替换的值
        var str = "";
        for (var i = 0; i < value.length; i++) {
          str += "*";
        }
        console.log("替换内容",str);//**
        return str;//返回的就是要替换的内容(**)根据匹配的长度得到替换数据的个数  
      });
      console.log(result);
      
   总结:这个函数是一个回调函数,先执行第一个参数的正则表达式,获得要替换的数据,再执行回调函数,   
     将要替换的内容传入函数中,函数的作用是根据传入的参数长度生成对应长度的替换内容,作为返回值,   
     返回之后,进行替换。
  • includes:如果使用indexOf判断某个字符串是否存在,只能通过判断返回值是否不等于-1实现。includes就是判断某个字符串是否存在,存在返回true,否则返回false,str.includes("查找的内容")
  1. 字符串转数组方法:split():
  • 如果没有传递任何参数,或者参数字符串在字符串中不存在,则把字符串整体作为数组的一个值
  • 如果参数是一个空字符串,则把字符串的每一个字符串作为数组的每一个(键)值,而不是分别作为一个新的数组。
  • 如果参数是一个字符,则以这个字符为分割,切割字符串,将以该字符的分割的内容,分别作为数组的键值
  1. 去除字符串首尾空白字符
  • trimStart():去除字符串前边的空白字符
  • trimeEnd():去除字符串后边空白字符
  • trim():去除字符串两边的空白字符
 var str = "    123    456     ";
      console.log(str);//未改变
      console.log(str.trimStart());//去掉头部空格
      console.log(str.trim());//去头去尾部空格