字符串

62 阅读2分钟
//1.通过下标找字符
  var str = "abc123";
  console.log(str[2]); //重点
  // console.log(str.charAt(2)); //了解

  //2.charCodeAt   unicode
  var str = "我爱你a";
  console.log(str.charCodeAt(0)); //25105
  console.log(str.charCodeAt(1)); //29233
  console.log(str.charCodeAt(2)); //20320
  console.log(str.charCodeAt(3)); //97

  //3.把unicode转换字符
  // String.fromCharCode() 静态方法 
  var str = String.fromCharCode(25105, 29233, 20320);
  console.log(str);

  //4.查找
  // 4.1 search 找到了返回下标,找不到返回-1
  //    支持正则
  var str = "abc123";
  console.log(str.search("c"));
  console.log(str.search("z"));
  console.log(str.search(/a/));

  //4.2 indexof 找到了返回下标,找不到返回-1
  // 第2个参数,默认是从0开始,也可以指定位置
  // 不支持正则
  var str = "abc123";
  console.log(str.indexOf("c"));
  console.log(str.indexOf("z"));
  console.log(str.indexOf(/a/));

  //4.3 match 找到了返回数组,找不到 返回null 
  var str = "abc123";
  console.log(str.match("c"));  //返回数组
  console.log(str.match("1c")); //返回null

  //4.4 lastIndexOf
  var str = "abc123abc";
  console.log(str.lastIndexOf("c")); // 8
  console.log(str.lastIndexOf("c", 5)); // 2

  //5.截取系列
  //5.1  slice 包含开始位置,包包含结束
  var str = '台上有一位绝世美男子,今年18岁';
  console.log(str.slice(7, 10));
  console.log(str.slice(7));
  //5.2  substring 包含开始位置,包包含结束,可以自动调整参数的顺序
  var str = '台上有一位绝世美男子,今年18岁';
  console.log(str.substring(10, 7));
  console.log(str.substring(7));

  //5.3 substr 第2个参数,表示截取的 个数
  var str = '台上有一位绝世美男子,今年18岁';
  console.log(str.substr(7));
  console.log(str.substr(7, 3));

  //6.合并  concat
  var str1 = "我是";
  var str2 = "美男子";
  var str3 = str1 + str2;
  var str4 = str1.concat(str2, "!");
  console.log(str3);
  console.log(str4);

  //7.切割 返回一个新的数组
  var str = "abc-123";
  console.log(str.split());
  console.log(str.split(""));
  console.log(str.split("-"));
  //8.替换
  var str = "台上有一个男子"; //男  --> 美男
  var str1 = str.replace("男", "美男");
  console.log(str);// 
  console.log(str1);// 
  //9.转大写
  var str = "abc123";
  var str1 = str.toUpperCase()
  console.log(str1);
  //10.转小写
  var str = "ABCDEGGSASDASDFD";
  var str1 = str.toLowerCase()
  console.log(str1);

  //11.重复多少次
  var str = "我爱你!";
  var str1 = str.repeat(100);
  console.log(str1);

  //12.字符串模板 ES6 
  // var s = "很";
  // var str = "今天天气" + s + "好";//很
  // console.log(str);

  var s = "很";
  var str = `今天天气${s}好`;
  console.log(str);

  //计算结果是
  var a = 10;
  var b = 20
  var str = "计算的结果:" + a + b;  //计算结果是30  劳神
  console.log(str);

  var str = `计算结果是:${a + b}`;
  console.log(str);

  var str1 = `aaa`;
  console.log(typeof str1); //string


  var str = "     你好 帅哦!     ";
  console.log(str.trim());
  console.log(str.trimEnd());
  console.log(str.trimStart());

  //padStart()
  //padEnd(), 不够就填充

  var str = "我是帅哥";
  console.log(str.padStart(10, "."));
  console.log(str.padEnd(10, "."));


  //includs 是否包含
  var str = "abc123";
  console.log(str.includes("1c"));



  //字符的方法
  //1. charAt() 通过下标找字符
  //2. charCodeAt()  根据下标返回字符串的unicode
  //3. String.fromCharCode() 把unicode转换字符
  //4. search()  支持正则,找到了返回下标,找不到返回-1
  //5. match()   支持正则,找到了返回数组,找不到返回null
  //6. indexOf() 找到了返回下标,找不到返回-1 ,第2个参数,默认是从0开始,也可以指定位置
  //7. lastIndexOf()
  //8. slice()  截取 包含开始位置,不包含结束位置
  //9. substring() 截取 2个参数,大小位置随便写 包含开始位置,不包含结束位置
  //10.substr()   第2个参数,截取个数
  //11.concat()  合并,拼接
  //12.repalce()  替换
  //13.split()  切割
  //14.repeat() 重复
  //15.toUpperCase() 转大写
  //16.toLowerCase() 转小写
  //17.trim() 去掉前后的空白
  //18.padStart() 前面填充
  //19.padEnd()   后面填充
  //20.includes() 是否包含指定的字符

  // g global 全局
  var str = "H e  l  ** l    o    Wo r         L d  !";
  console.log(str.replace(/\*/g, "").replace(/ /g, ""));