字符串常用的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(): 在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

浙公网安备 33010602011771号