在JavaScript开发中,处理字符串空格是非常常见的操作,不同的业务场景需要不同的去空格策略,比如有的只需要去掉首尾空格,有的需要去掉所有空格,还有的需要保留单个空格同时去掉多余空格。下面为大家介绍5种高效的字符串去空格方法。

方法一:使用trim方法去除首尾空格
trim()是JavaScript字符串原生的实例方法,作用是移除字符串首尾的空白字符,包括空格、制表符、换行符等,不会修改原字符串,返回新的字符串。该方法兼容性较好,支持现代浏览器和Node.js环境。
// 定义包含首尾空格的字符串 let str = " hello world "; // 调用trim方法去除首尾空格 let result = str.trim(); console.log(result); // 输出:hello world console.log(str); // 输出: hello world ,原字符串未被修改
方法二:使用trimStart和trimEnd去除单侧空格
如果只需要去除字符串开头或者结尾的空格,可以使用trimStart()和trimEnd()方法,前者去除开头的空白字符,后者去除结尾的空白字符,同样不会修改原字符串。
let str = " hello world "; // 去除开头空格 let startResult = str.trimStart(); console.log(startResult); // 输出:hello world // 去除结尾空格 let endResult = str.trimEnd(); console.log(endResult); // 输出: hello world
方法三:使用replace配合正则去除所有空格
如果需要去除字符串中的所有空格,可以使用replace()方法结合正则表达式/s/g,其中s匹配所有空白字符,g表示全局匹配,替换内容为空字符串即可去掉所有空格。
let str = " he llo wo rld "; // 全局匹配所有空白字符并替换为空 let result = str.replace(/s/g, ""); console.log(result); // 输出:helloworld
方法四:使用replace去除首尾空格的正则方式
在没有trim()方法的旧环境或者需要自定义匹配规则时,可以使用正则表达式/^s+|s+$/g配合replace()方法去除首尾空格,^s+匹配开头的空白字符,s+$匹配结尾的空白字符。
let str = " hello world "; // 匹配首尾空白字符替换为空 let result = str.replace(/^s+|s+$/g, ""); console.log(result); // 输出:hello world
方法五:去除多余空格只保留单个空格
有些场景下需要把字符串中连续的多个空格替换为单个空格,同时去掉首尾空格,可以使用两次replace()方法,先替换全局连续空白为单个空格,再去除首尾空格。
let str = " he ll o wo rld "; // 第一步:将所有连续空白字符替换为单个空格 let step1 = str.replace(/s+/g, " "); // 第二步:去除首尾空格 let result = step1.replace(/^s|s$/g, ""); console.log(result); // 输出:he ll o wo rld
不同方法的选择建议
可以根据实际场景选择合适的方法:
- 只需要去除首尾空格,优先使用
trim()方法,代码简洁性能也不错 - 只需要去除开头或结尾的空格,使用
trimStart()或trimEnd() - 需要去除所有空格,使用
replace(/s/g, "")的方式 - 需要保留单个空格同时去掉多余空格,使用连续两次
replace()的方案 - 如果需要兼容不支持
trim()的旧环境,可以使用正则配合replace()的自定义实现
性能对比参考
在处理短字符串时,几种方法的性能差异可以忽略,当处理超长字符串时,原生trim()方法的性能通常优于正则替换的方式,因为原生方法是引擎底层实现的。下面是简单的性能测试示例:
let longStr = " " + "a".repeat(100000) + " ";
console.time("trim");
longStr.trim();
console.timeEnd("trim");
console.time("replace");
longStr.replace(/^s+|s+$/g, "");
console.timeEnd("replace");
实际开发中不需要过度追求性能,优先选择符合需求且代码可读性高的方法即可。
JavaScript字符串去空格trim方法replace方法正则匹配修改时间:2026-06-14 01:57:34