js 字符串操作方法
一般面试不会问 js 字符串,只是自己熟悉一下。
实例方法
1. 获取字符串信息
length:返回字符串的长度。const str = "Hello, World!";
console.log(str.length); // 13
2. 查找和匹配
-
charAt(index):返回指定索引处的字符。const str = "Hello, World!";
console.log(str.charAt(0)); // H -
charCodeAt(index):返回指定索引处字符的 Unicode 编码。const str = "Hello, World!";
console.log(str.charCodeAt(0)); // 72 -
indexOf(searchValue, fromIndex):返回指定值在字符串中第一次出现的索引,如果未找到则返回 -1。const str = "Hello, World!";
console.log(str.indexOf("W")); // 7 -
lastIndexOf(searchValue, fromIndex):返回指定值在字符串中最后一次出现的索引,如果未找到则返回 -1。const str = "Hello, World! Hello again!";
console.log(str.lastIndexOf("Hello")); // 14 -
includes(searchValue, position):检查字符串是否包含指定值,返回布尔值。const str = "Hello, World!";
console.log(str.includes("World")); // true -
startsWith(searchValue, position):检查字符串是否以指定值开头,返回布尔值。const str = "Hello, World!";
console.log(str.startsWith("Hello")); // true -
endsWith(searchValue, length):检查字符串是否以指定值结尾,返回布尔值。const str = "Hello, World!";
console.log(str.endsWith("World!")); // true
3. 提取子字符串
-
slice(start, end):提取字符串的一部分,返回新字符串。const str = "Hello, World!";
console.log(str.slice(0, 5)); // Hello -
substring(start, end):提取字符串的一部分,返回新字符串。与slice类似,但不接受负数索引。const str = "Hello, World!";
console.log(str.substring(0, 5)); // Hello -
substr(start, length):从指定索引开始提取指定长度的子字符串。const str = "Hello, World!";
console.log(str.substr(0, 5)); // Hello
4. 替换和转换
-
replace(searchValue, replaceValue):替换字符串中第一个匹配的子字符串。const str = "Hello, World!";
console.log(str.replace("World", "JavaScript")); // Hello, JavaScript! -
replaceAll(searchValue, replaceValue):替换字符串中所有匹配的子字符串。const str = "Hello, World! World is great!";
console.log(str.replaceAll("World", "JavaScript")); // Hello, JavaScript! JavaScript is great! -
toLowerCase():将字符串转换为小写。const str = "Hello, World!";
console.log(str.toLowerCase()); // hello, world! -
toUpperCase():将字符串转换为大写。const str = "Hello, World!";
console.log(str.toUpperCase()); // HELLO, WORLD! -
trim():去除字符串首尾的空白字符。const str = " Hello, World! ";
console.log(str.trim()); // Hello, World! -
trimStart():去除字符串开头的空白字符。const str = " Hello, World!";
console.log(str.trimStart()); // Hello, World! -
trimEnd():去除字符串末尾的空白字符。const str = "Hello, World! ";
console.log(str.trimEnd()); // Hello, World!
5. 分割和拼接
-
split(separator, limit):将字符串分割为子字符串数组。const str = "Hello, World!";
console.log(str.split(", ")); // ["Hello", "World!"] -
concat(string1, string2, ..., stringN):将一个或多个字符串连接为一个新字符串。const str1 = "Hello";
const str2 = ", ";
const str3 = "World!";
console.log(str1.concat(str2, str3)); // Hello, World!
6. 格式化和编码
-
padStart(targetLength, padString):在字符串开头填充指定字符,直到达到目标长度。const str = "5";
console.log(str.padStart(3, "0")); // 005 -
padEnd(targetLength, padString):在字符串末尾填充指定字符,直到达到目标长度。const str = "5";
console.log(str.padEnd(3, "0")); // 500 -
repeat(count):重复字符串指定次数。const str = "abc";
console.log(str.repeat(3)); // abcabcabc -
match(regexp):在字符串中搜索与正则表达式匹配的子字符串,返回匹配结果的数组。const str = "Hello, World!";
console.log(str.match(/World/)); // ["World", index: 7, input: "Hello, World!", groups: undefined] -
matchAll(regexp):在字符串中搜索与正则表达式匹配的所有子字符串,返回一个迭代器。const str = "Hello, World! Hello again!";
const matches = str.matchAll(/Hello/g);
for (const match of matches) {
console.log(match);
}
// ["Hello", index: 0, input: "Hello, World! Hello again!", groups: undefined]
// ["Hello", index: 14, input: "Hello, World! Hello again!", groups: undefined]
7. 其他方法
-
charAt(index):返回指定索引处的字符。const str = "Hello, World!";
console.log(str.charAt(0)); // H -
codePointAt(pos):返回指定索引处字符的 Unicode 编码点。const str = "Hello, World!";
console.log(str.codePointAt(0)); // 72 -
normalize(form):返回字符串的规范化形式。const str = "Héllò, Wôrld!";
console.log(str.normalize()); // Héllò, Wôrld! -
toLocaleLowerCase(locale):将字符串转换为小写,考虑本地化规则。const str = "HELLO, WORLD!";
console.log(str.toLocaleLowerCase("tr")); // hello, world! -
toLocaleUpperCase(locale):将字符串转换为大写,考虑本地化规则。const str = "hello, world!";
console.log(str.toLocaleUpperCase("tr")); // HELLO, WORLD!
总结
JavaScript 字符串提供了丰富的内置方法,用于各种操作和处理。通过合理使用这些方法,可以极大地简化代码并提高开发效率。如果你有任何更具体的问题或需要进一步的解释,请告诉我!
静态方法
JavaScript 字符串对象提供了一些静态方法,这些方法可以直接在 String 构造函数上调用,而不需要创建字符串实例。以下是一些常用的字符串静态方法及其简要说明:
1. String.fromCharCode(...codes)
- 用途:根据指定的 Unicode 编码点序列,返回一个字符串。
- 参数:一个或多个表示 Unicode 编码点的整数。
- 返回值:一个字符串,包含由指定编码点组成的字符。
- 示例:
const str = String.fromCharCode(72, 101, 108, 108, 111);
console.log(str); // "Hello"