JS 字符串方法速查表
早期方法(ES1 ~ ES3)
| 方法名 | 引入版本 | 功能描述 | 使用示例 |
|---|---|---|---|
| toString() | ES1 (1997) | 返回字符串值 | 'abc'.toString(); // 'abc' |
| valueOf() | ES1 (1997) | 返回原始字符串值 | 'abc'.valueOf(); // 'abc' |
| charAt() | ES1 (1997) | 返回指定索引字符 | 'abc'.charAt(1); // 'b' |
| charCodeAt() | ES1 (1997) | 返回字符的 Unicode 编码 | 'abc'.charCodeAt(0); // 97 |
| concat() | ES1 (1997) | 连接多个字符串 | 'a'.concat('b', 'c'); // 'abc' |
| indexOf() | ES1 (1997) | 返回子串首次出现位置 | 'abc'.indexOf('b'); // 1 |
| lastIndexOf() | ES1 (1997) | 返回子串最后出现位置 | 'aba'.lastIndexOf('a'); // 2 |
| slice() | ES1 (1997) | 提取子字符串 | 'abcde'.slice(1, 3); // 'bc' |
| substring() | ES1 (1997) | 提取两索引间的子串 | 'abcde'.substring(1, 3); // 'bc' |
| substr() | ES1 (1997) | 提取从索引开始的指定长度(已废弃) | 'abcde'.substr(1, 2); // 'bc' |
| toLowerCase() | ES1 (1997) | 转为小写 | 'ABC'.toLowerCase(); // 'abc' |
| toUpperCase() | ES1 (1997) | 转为大写 | 'abc'.toUpperCase(); // 'ABC' |
| replace() | ES3 (1999) | 替换首次匹配内容 | 'abc'.replace('b', 'x'); // 'axc' |
| search() | ES3 (1999) | 返回正则匹配的起始索引 | 'abc'.search(/b/); // 1 |
| split() | ES3 (1999) | 按分隔符拆分为数组 | 'a,b,c'.split(','); // ['a','b','c'] |
| localeCompare() | ES3 (1999) | 本地化字符串比较 | 'b'.localeCompare('a'); // 1 |
| match() | ES3 (1999) | 用正则匹配返回数组 | 'abc'.match(/b/); // ['b'] |
| toLocaleLowerCase() | ES3 (1999) | 本地化转为小写 | 'ABC'.toLocaleLowerCase(); // 'abc' |
| toLocaleUpperCase() | ES3 (1999) | 本地化转为大写 | 'abc'.toLocaleUpperCase(); // 'ABC' |
现代方法(ES5 及以后)
| 方法名 | 引入版本 | 功能描述 | 使用示例 |
|---|---|---|---|
| trim() | ES5 (2009) | 去除首尾空白 | ' abc '.trim(); // 'abc' |
| codePointAt() | ES6 (2015) | 返回字符的 Unicode 码点(支持 >0xFFFF) | 'A'.codePointAt(0); // 65 |
| normalize() | ES6 (2015) | Unicode 标准化 | 'é'.normalize('NFC'); // 'é' |
| repeat() | ES6 (2015) | 重复字符串 | 'ab'.repeat(2); // 'abab' |
| startsWith() | ES6 (2015) | 是否以指定字符串开头 | 'abc'.startsWith('ab'); // true |
| endsWith() | ES6 (2015) | 是否以指定字符串结尾 | 'abc'.endsWith('bc'); // true |
| includes() | ES6 (2015) | 是否包含子串 | 'abc'.includes('b'); // true |
| padStart() | ES2017 (2017) | 头部填充到指定长度 | '5'.padStart(3, '0'); // '005' |
| padEnd() | ES2017 (2017) | 尾部填充到指定长度 | '5'.padEnd(3, '0'); // '500' |
| trimStart() | ES2019 (2019) | 去除头部空白 | ' abc'.trimStart(); // 'abc' |
| trimEnd() | ES2019 (2019) | 去除尾部空白 | 'abc '.trimEnd(); // 'abc' |
| matchAll() | ES2020 (2020) | 返回所有正则匹配的迭代器 | [...'ab ab'.matchAll(/ab/g)]; // [['ab'], ['ab']] |
| replaceAll() | ES2021 (2021) | 替换所有匹配内容 | 'a-a'.replaceAll('a', 'b'); // 'b-b' |
| at() | ES2022 (2022) | 支持负索引访问字符 | 'abc'.at(-1); // 'c' |
静态方法(String 对象)
| 方法名 | 引入版本 | 功能描述 | 使用示例 |
|---|---|---|---|
| String.fromCharCode() | ES1 (1997) | 从 Unicode 编码创建字符串 | String.fromCharCode(65, 66); // 'AB' |
| String.fromCodePoint() | ES6 (2015) | 从码点创建字符串(支持 >0xFFFF) | String.fromCodePoint(0x1F600); // 'GRINNING FACE' |
| String.raw() | ES6 (2015) | 原始字符串(保留转义) | String.rawhello\nworld; // 'hello\\nworld' |
