ES12 中的 String.prototype.trimStart() 和 String.prototype.trimEnd()

在 ES12 中,新增了两个方法:String.prototype.trimStart()String.prototype.trimEnd()。它们可以帮助我们去除字符串开头和结尾的空格,从而更方便地处理字符串。

语法和用法

这两个方法的语法类似,并且都返回处理后的新字符串。它们的用法如下:

const str = '  hello, world  ';
const trimmedStart = str.trimStart(); // 'hello, world  '
const trimmedEnd = str.trimEnd(); // '  hello, world'

深入了解

兼容性

这两个方法是在 ES12 中才被标准化的,因此不是所有浏览器都支持它们。但是,你可以使用一个 polyfill 来让它们在不支持的浏览器上正常工作:

if (!String.prototype.trimStart) {
  String.prototype.trimStart = function() {
    return this.replace(/^\s+/, '');
  }
}

if (!String.prototype.trimEnd) {
  String.prototype.trimEnd = function() {
    return this.replace(/\s+$/, '');
  }
}

案例

假设我们有一个字符串里面包含了多行文本,我们想去掉每行前面和后面的空格并将每行的第一个字符大写,我们可以这样实现:

const multiLineStr = `
  hello, world
  this is a multi-line string
`;

const formattedStr = multiLineStr
  .trim()
  .split('\n')
  .map(line => line.trimStart().replace(/^\w/, c => c.toUpperCase()))
  .join('\n');

输出结果:

注意事项

需要注意的是,这两个方法均不能修改原始字符串,而是返回一个新的字符串。此外,在支持这两个方法的浏览器中,你也可以使用String.prototype.trimLeft()String.prototype.trimRight() 方法,它们的用法和这两个方法类似。

总结

String.prototype.trimStart()String.prototype.trimEnd() 是在 ES12 中新增的用于去除字符串开头和结尾空格的两个方法,使用起来非常简单,但需要注意的是,它们不能修改原始字符串。这两个方法可以帮助我们更方便地处理字符串,并提升代码的可读性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65baed67add4f0e0ff382a6f