JavaScript如何修剪字符串同时保留换行与回车字符?
仅移除字符串首尾空格、保留换行/回车的实现方法
针对你给出的字符串示例:
let str = " \rA string with carriage returns\n ";
JavaScript内置的trim()会移除所有首尾空白字符(包括空格、换行、回车等),如果只想移除首尾的普通空格,同时保留\r、\n这类字符,可以用以下两种方法:
方法一:正则表达式替换
使用精准匹配首尾普通空格的正则,替换为空字符串:
const trimOnlySpaces = str => str.replace(/^ +| +$/g, ''); // 测试 trimOnlySpaces(str); // 返回 "\rA string with carriage returns\n"
解释:^ +匹配字符串开头的一个或多个普通空格, +$匹配字符串结尾的一个或多个普通空格,g标志确保全局替换。
方法二:手动遍历截取
通过遍历找到首尾第一个非空格的位置,再截取子串:
const trimOnlySpaces = str => { let start = 0; // 从开头找第一个非空格的位置 while (start < str.length && str[start] === ' ') { start++; } let end = str.length - 1; // 从结尾找最后一个非空格的位置 while (end >= 0 && str[end] === ' ') { end--; } // 处理全是空格的边界情况 return start > end ? '' : str.substring(start, end + 1); }; // 测试 trimOnlySpaces(str); // 返回 "\rA string with carriage returns\n"
这种方法不依赖正则,逻辑更直观,适合需要精确控制处理逻辑的场景。
内容的提问来源于stack exchange,提问作者Fifi
相关产品推荐
相关产品推荐

