本文参考了阮一峰大神的相关教程,总结了字符串中常见的知识点。
一、JS中的字符串
1. 约定html的属性值使用双引号,js的字符串使用单引号。
2. 对于多行字符串,可以采用尾部反斜杠 或 +
3. str[i]可访问单个字符,但字符串内部无法增删。
4. 实例方法
1)str.length
2)str1.concat( str2 ) :可接受多个参数
3)str.slice( start, end) :左闭右开,提取子字符串并返回,不改变原字符串,若省略第2个参数,则一直到字符串结束。
4)str.substr( start, count) :同slice
5)str.indexOf()、str.lastIndexOf() :确定字符串a在字符串b中第一次出现的位置,第2个参数可选,表示从该位置向后匹配,“hello word”.indexOf( ‘he’, 2);
6)str.trim() :去除两端空格/换行符等,返回新字符串,不改变原字符串
7)str.toLowerCase()、str.toUpperCase()
8)搜索匹配
str.match(str1) :返回数组,为匹配的第一个字符串,有Index属性
str.search( str1) :返回值为匹配的第一个位置
str.replace( str1, str2) :在str中查找第一个str1,并用str2替换
9)str.split(‘c’) :按照给定规则分割字符串,返回新数组
10)str1.localeCompare( str2 ) :比较两个字符串,>0 =0 <0
二、ES6中的字符串
1. 模板字符串
1)反引号`标识,可当普通/多行字符串,或字符串中嵌入变量
2)多行字符串:所有空格、缩进都会保留,可以trim
3)嵌入变量:需要将变量名写在${}
4)标签模板
tag`Hello ${a + b} world ${a * b}`;
tag( [‘Hello’, ‘world’, ‘ ‘], 15, 50 );
5)当需要通过适当缩进对齐文本,则空置第一行,再trim()调用去除
6)应用——过滤HTML字符串、多语言转换
2. es6新增实例方法
1)与indexOf 对应
str.includes( str1 ) //表示是否找到了参数字符串
startsWith()、endsWith()
2)str.repeat(count) //将原字符串重复n次
3)字符串补全 padStart()、padEnd()
4)清除空格 trimStart()、trimEnd()
5)搜索匹配
matchAll:返回一个正则表达式在当前字符串的所有匹配
replaceAll():全部替换