将所有空格替换为一个,但保留换行符

Replace all whitespaces for one, but preserve the break lines

本文关键字:一个 换行符 保留 空格 替换      更新时间:2023-09-26

我试图创建一个正则表达式,将取代所有的空白为一个,但保留新的行,是可能的吗?

例如:

var text = 'AAAAAAAA'
text += 'AA AA      AAA BB  B  B B B BB B'
text += 'B B';
var text = text.replace(/'s+/g, ' ');
"AAAAAAAAAA AA      AAA BB  B  B B B BB BB B"
输出:

"AAAAAAAAAA AA AAA BB B B B B BB BB B"

我想保留这些行。

谢谢。

你可以这样用,

text.replace(/[ 't]+/g, ' ');

text.replace(/(?:(?!['r'n])'s)+/g, ' ')

由于下列字符被视为空白:

  • 't - tab
  • 'f - form feed
  • 'r -回车
  • 'n -换行
  • 'v -垂直标签
  • - space

您可以使用以下模式来完成您的任务,

/['t'f'v ]+/g

text.replace(/['t'f'v ]+/g, " ");