js trim实现
实现 JavaScript 字符串 trim 功能
在 JavaScript 中,trim() 方法用于去除字符串两端的空白字符(包括空格、制表符、换行符等)。以下是几种实现方式:
使用原生 trim() 方法
现代浏览器和 Node.js 环境原生支持 trim() 方法:
const str = ' Hello World! ';
const trimmedStr = str.trim();
console.log(trimmedStr); // 输出: "Hello World!"
手动实现 trim 功能
如果需要在不支持原生 trim() 的环境中使用,或者需要自定义 trim 行为,可以通过正则表达式实现:
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
const str = ' Hello World! ';
console.log(trim(str)); // 输出: "Hello World!"
扩展实现:trimStart 和 trimEnd
如果需要单独去除开头或结尾的空白字符,可以分别实现:
function trimStart(str) {
return str.replace(/^\s+/, '');
}
function trimEnd(str) {
return str.replace(/\s+$/, '');
}
const str = ' Hello World! ';
console.log(trimStart(str)); // 输出: "Hello World! "
console.log(trimEnd(str)); // 输出: " Hello World!"
兼容性处理
对于老旧环境,可以检测原生 trim() 是否存在,不存在时进行扩展:
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
}
const str = ' Hello World! ';
console.log(str.trim()); // 输出: "Hello World!"
性能考虑
对于大量字符串处理,正则表达式可能不是最高效的方式。可以通过字符遍历实现:

function trim(str) {
let start = 0;
let end = str.length - 1;
while (start <= end && str[start] === ' ') start++;
while (end >= start && str[end] === ' ') end--;
return str.substring(start, end + 1);
}
以上方法提供了不同场景下的 trim 功能实现方案,可根据具体需求选择合适的方式。






