每天做个总结吧,坚持就是胜利!
/**
@date 2021-06-21
@description String方法小结
*/
壹(序)
String是JavaScript中的一个基本数据类型,用来表示字符串;
字符串有两种声明方式:
字面量声明:
const str = 'string';
- 构造
函数声明
/**
* 使用构造函数String进行声明,获取值的时候需要调用toString方法或valueOf方法
*/
const strObj = new String('string');
const str = strObj.toString();
// const str = strObj.valueOf();
贰(常用方法)
公共代码:
const str = 'string';
charAt:获取第n位的字符
let s = str.charAt(3); // 'i'
// 因为String部署有Iterator接口,所以可以看作是一个类数组,所以String带有length属性,且可以使用[]获取其中的值
const len = str.length; // 6
s = str[2]; // 'r'
// 超出范围返回空字符串
s = str.charAt(-1); // ''
s = str.charAt(6); // ''
charCodeAt:获取第n位字符的Unicode码
str.charCodeAt(2); // 114
// 超出范围返回NaN
str.charCodeAt(6); // NaN
concat:连接字符串并返回连接过后的字符串
const name = 'E1e', age = 18;
const info = 'name: '.concat(name, ',' , 'age: ', age); // 'name: E1e,age: 18'
endsWith:是否以子字符串结尾,可以传入一个length,表示被操作的str的长度,默认为str.length
str.endsWith('ing'); // true
str.endsWith('str'); // false
str.endsWith('str', 3); // true
includes:字符串是否包含子字符串,传入子字符串,开始判断的索引位置,默认为0,即从头开始判断
str.includes('str'); // true
str.includes('str', 2); // false
indexOf:传入一个子字符串,返回第一次出现子字符串的位置索引,可以传入开始查找的位置,默认为0,未找到则返回-1
str.indexOf('ing'); // 3
str.indexOf('ing', 4); // -1
str.indexOf(''); // 0
lastIndexOf:与indexOf类似,但是是返回最后一次出现的位置,所以是从后往前查找
const repeatStr = 'stringstring';
repeatStr.lastIndexOf('i'); // 9
repeatStr.lastIndexOf('i', 6); // 3
repeatStr.lastIndexOf(''); // 12
match:传入一个正则,返回字符串中所有满足此正则的子字符串组成的数组
repeatStr.match(/i/g);// ['i', 'i']
matchAll:传入一个正则,返回字符串中所有满足此正则的子字符串的迭代器
[...repeatStr.matchAll(/s/g)]; // [['s'], ['s']]
const iterator = repeatStr.matchAll(/s/g);
iterator.next(); // {value: ['i'], done: false}
iterator.next(); // {value: ['i'], done: false}
iterator.next(); // {value: undefined, done: true}
padEnd:从尾部开始以传入的字符(默认为'')填充字符串,直到填充到字符串长度达到传入的长度,返回填充后的字符串
str.padEnd(10, '.'); // 'string....'
str.padEnd(10); // 'string '
11.padStart:从头还是填充字符串
str.padStart(10, '.'); // '....string'
str.padStart(10); // ' string'
repeat:根据传入的重复次数构造重复的字符串并返回
str.repeat(2); // stringstring
str.repeat(3); // stringstringstring
str.repeat(); // ''
replace:使用第二个参数替换字符串中的第一个参数,第一个参数可以是字符串或正则,第二个参数可以是字符串或函数(需返回字符串)
str.replace('ing', 'str'); // 'strstr'
str.replace(/[a-z]/g, '1'); // '111111'
str.replace(/[a-z]/g, () => 's'); // 'ssssss'
replaceAll:与replace不同的是,replaceAll会替换所有匹配到的值
repeatStr.replaceAll('ing', 'str'); // ‘strstrstrstr’
search:传入一个正则表达式,返回字符串中第一次匹配到的索引,未匹配到则返回-1
repeatStr.search(/i/g); // 3
repeatStr.search(/q/g); // -1
slice:根据startIndex和endIndex提取字符串,返回提取的字符串,不会改变原字符串,startIndex默认为0,endIndex默认为字符串长度
str.slice(0, 3); // 'str'
str.slice(); // 'string'
split:根据分隔符将字符串分割,返回一个数组,第二个参数表示数组长度
str.split(); // ["string"]
str.split('i'); ["str", "ng"]
str.split('i', 1); ["str"]
startsWith:与endsWith类似,不过是从头开始匹配
str.startsWith('str'); // true
str.startsWith('ing'); // false
str.startsWith('ing', 3); // true
substring:与slice类似
str.substring(0, 3); // 'str'
str.substring(); // 'string'
toLowerCase:将字符串转换为小写形式
'STRING'.toLowerCase(); // 'string'
toUpperCase:将字符串转换为大写形式
'string'.toUpperCase(); // 'STRING'
trim, trimStart, trimEnd:去除字符左右/开头/结尾的空白字符
const spaceStr = ' string ';
spaceStr.trim(); // 'string'
spaceStr.trimStart(); 'string '
spaceStr.trimStart(); ' string'