如何在去除文本文件多余空格时保留换行符?
解决方案:保留换行符,仅去除行内多余空格
你可以修改正则表达式,只匹配行内的连续空白字符(排除换行符),这样就能保留换行同时清理每行内的多余空格:
string.replace(/[^\S\n]+/g, " ").trim();
原理说明:
[^\S\n]是一个反向字符集:\S表示非空白字符,[^\S]就等价于所有空白字符(空格、制表符等),再排除\n(换行符),最终只会匹配行内的多余空白。- 加上
g修饰符实现全局替换,把每行内的连续空白统一换成单个空格。
如果还需要同时去掉每行首尾的空格,可以结合多行模式(m修饰符):
// 先清理每行首尾空格,再替换行内多余空格 string.replace(/^\s+|\s+$/gm, '').replace(/[^\S\n]+/g, ' ');
这里的gm修饰符让^和$匹配每行的开头和结尾,而非整个字符串的首尾,精准清理每行的前后空格。
内容的提问来源于stack exchange,提问作者Prabhat
相关产品推荐
相关产品推荐

