在 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');
输出结果:
Hello, world This is a multi-line string
注意事项
需要注意的是,这两个方法均不能修改原始字符串,而是返回一个新的字符串。此外,在支持这两个方法的浏览器中,你也可以使用String.prototype.trimLeft()
和String.prototype.trimRight()
方法,它们的用法和这两个方法类似。
总结
String.prototype.trimStart()
和 String.prototype.trimEnd()
是在 ES12 中新增的用于去除字符串开头和结尾空格的两个方法,使用起来非常简单,但需要注意的是,它们不能修改原始字符串。这两个方法可以帮助我们更方便地处理字符串,并提升代码的可读性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65baed67add4f0e0ff382a6f