ECMAScript 2021(ES12)是 JavaScript 的最新标准,其中包含了许多新特性和增强功能。本文将介绍 ES12 中新增的字符串方法,包括 trimStart、trimEnd、replaceAll、matchAll 和 String.prototype.slice。
trimStart 和 trimEnd
trimStart
和 trimEnd
方法分别用于去除字符串开头和结尾的空白字符。在 ES11 中,这两个方法被称为 trimLeft
和 trimRight
。
语法
str.trimStart(); str.trimEnd();
参数
这两个方法不接受任何参数。
返回值
这两个方法返回一个新的字符串,该字符串去除了开头或结尾的空白字符。
示例
const str = ' hello world '; console.log(str.trimStart()); // 'hello world ' console.log(str.trimEnd()); // ' hello world'
replaceAll
replaceAll
方法用于替换字符串中的所有匹配项。
语法
str.replaceAll(searchValue, replaceValue);
参数
searchValue
:要替换的字符串或正则表达式。replaceValue
:用于替换的新字符串或函数。
返回值
该方法返回一个新的字符串,其中所有的匹配项都被替换为指定的字符串或函数返回的值。
示例
const str = 'hello world'; console.log(str.replaceAll('l', 'L')); // 'heLLo worLd' console.log(str.replaceAll(/l/g, 'L')); // 'heLLo worLd'
matchAll
matchAll
方法返回一个迭代器,用于遍历字符串中所有匹配的子串。
语法
str.matchAll(regexp);
参数
regexp
:要匹配的正则表达式。
返回值
该方法返回一个迭代器,可以使用 for...of
循环遍历其中的所有匹配项。每个匹配项都是一个数组,包含了匹配的子串和其对应的捕获组。
示例
// javascriptcn.com 代码示例 const str = 'hello world'; const regexp = /l/g; const matches = str.matchAll(regexp); for (const match of matches) { console.log(match); } // ['l', index: 2, input: 'hello world', groups: undefined] // ['l', index: 3, input: 'hello world', groups: undefined]
slice
slice
方法用于提取字符串中的一部分。
语法
str.slice(startIndex, endIndex);
参数
startIndex
:要提取的子串的起始位置。如果为负数,则表示从字符串末尾开始计算的偏移量。endIndex
:要提取的子串的结束位置(不包含该位置的字符)。如果省略该参数,则提取到字符串末尾。
返回值
该方法返回一个新的字符串,包含了从原字符串中提取的子串。
示例
const str = 'hello world'; console.log(str.slice(1, 5)); // 'ello' console.log(str.slice(-5)); // 'world'
总结
ES12 中新增的字符串方法包括 trimStart
、trimEnd
、replaceAll
、matchAll
和 slice
。这些方法可以让我们更方便地处理字符串,提高代码的可读性和可维护性。在实际开发中,我们可以根据具体需求来选择使用哪些方法。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657a77b7d2f5e1655d4d285a