字符串常用的API

获取字符串的长度`str.length` ,长度里面包括字符串之间的空格以及标点符号

 let str = 'hellow world'
 console.log(str.length); // 打印结果为12

获取字符串给定索引位置的字符 `chartAt()`

let str = 'hellow world'
console.log(str.charAt(4)); // 打印结果为o

所有字符的操作方法都不会改变原字符串,会返回一个新的字符串

 提取字符串的方法有3个:slice()、substring()、substr()

slice()接收一个参数时,表示从这个参数的位置截取到末尾,参数为负数时从字符串最后一个字符为-1数起

let str = '我是这条gai,最靓的崽'
let newStr = str.slice(4)
console.log(newStr);//打印结果  gai,最靓的崽
let str2 = str.slice(-3)
console.log(str2); //打印结果   靓的崽

slice() 接收两个参数时,从第一个参数的位置截取到第二个参数的位置,但不包含第二个参数的位置,可以理解为含头不含尾

let str = '我是这条gai,最靓的崽'
let newStr = str.slice(4,8)
console.log(newStr);//打印结果  gai,

substring()接收第一个参数和slice()接收第一个参数的作用是一样的,但参数为负数时,substring()会把所有负参数的值转换为0

let str = '我是这条gai,最靓的崽'
let newStr = str.substring(-3)
console.log(newStr);//打印结果  我是这条gai,最靓的崽

substring()接收两个参数时,参数都为正数时,也是含头不含尾,但其中一个参数为负数,就转换为0,而且还会把两个参数的位置调换,例如str.slice(4,-2)会调换成str.slice(0,4),当两个参数相等时,返回值是一个空的字符串

  let str = '我是这条gai,最靓的崽'
  let newStr = str.substring(4,8)
  console.log(newStr);//打印结果 gai,
  let str2 = str.substring(4,-2)
  console.log(str2); //打印结果  我是这条
  let str3 = str.substring(2,2)
  console.log(str3); // 打印结果 '' 空字符串

substr()接收一个参时,无论接收的是正参数还是负参数,结果的效果和slice()接收一个参数时是一样的

substr()接收两个参数时是比较特别的,当两个参数都为正数时,它从第一个正参数的索引位置开始提取,提取的元素总数为第二个正参数, 若是第二个参数为负数,那么提取的元素总数为0个

let str = '我是这条gai,最靓的崽'
  let newStr = str.substr(4,5)
  console.log(newStr);//打印结果 gai,最
  let str2 = str.substr(4,-5)
  console.log(str2); //打印结果  ''

concat(),用于将一个或多个字符串拼接成一个新字符,但我们更常用‘+’拼接

  let str = '我是这条gai,最靓的崽'
  let newStr = str.concat('hahahahaha')
  console.log(newStr);//打印结果 我是这条gai,最靓的崽hahahahaha

split():把字符串分割成字符串数组

var str="AA BB CC DD";
var string1="1:2:3:4:5";
var str1=str.split("");//如果把空字符串 ("")用作分割符,那么字符串的每个字符之间都会被分割
var str2=str.split(" "); //以空格为分隔符
var str3=str.split("",4); //4指定返回数组的最大长度
var str4=string1.split(":");
console.log(str1); // ["A", "A", " ", "B", "B", " ", "C", "C", " ", "D", "D"]
console.log(str2); //["AA" "BB" "CC" "DD"]
console.log(str3); //["A", "A", " ", "B"]
console.log(str4); // ["1", "2", "3", "4", "5"]

 

字符串位置的方法:indexOf()、lastIndexOf() 这两个方法从字符串中搜索传入的参数,然返回对应的索引位置(如果没有找到,就返回-1)区别:indexOf()从字符串开头查找,lastIndexOf从字符串的末尾开始查找

  let str = 'hellow world'
  let indexStr = str.indexOf('o')
  console.log(indexStr);//打印结果 4
  let lastStr = str.lastIndexOf('o')
  console.log(lastStr);//打印结果  8

indexOf()、lastIndexOf() 当他们有两个参数时,第二个参数表示开始查找的位置,indexOf()从这个位置的字符末尾开始查找,忽略前面的字符串,lastIndexOf()从这个位置向字符串的开头查找,忽略该位置之后直接到字符串末尾的字符

  let str = 'hellow world'
  let indexStr = str.indexOf('o',6)
  console.log(indexStr);//打印结果 8
  let lastStr = str.lastIndexOf('o',6)
  console.log(lastStr);//打印结果  4

我们可以通过第二个参数并循环调用indexOf()和lastIndexOf(),从而在字符串中找到所有的目标子字符串的位置

  let str = 'If not delicate young, then delicate old'
  let arr = []
  let pos = str.indexOf('o')
  while( pos > -1){
    arr.push(pos)
    pos = str.indexOf('o',pos + 1)
  }
  console.log(arr);//打印结果  [4, 17, 37]

ES6新增了3个用于判断字符串是否包含另一个字符串的方法:startsWith()、endsWith()、includes() 他们的返回值是一个布尔值

第一个参数是要查找的字符串,startsWith()从字符串索引0开始查找,endsWith()从字符串尾部开始查找,includes()检查整个字符串,当查找的元素和索引的位置相对应就返回true,否则就返回false

tirm()删除字符串前后所有空格

repeat() 这个方法接受一个整数参数,表示要将字符串复制多少次,然后返回拼接所有副本的后果

字符串大小写转换:toUpperCase()和toLowerCase()

match(): 返回所有查找的关键字内容的数组。

replace(): 在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

 

 

posted @ 2021-01-20 20:09  mirabel  阅读(175)  评论(0)    收藏  举报