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

时间:2015-09-28 17:30:57

标签: javascript regex

我试图创建一个可以替换所有空格的正则表达式,但是可以保留新行吗?

例如:

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"

我想保留线条。

感谢。

2 个答案:

答案 0 :(得分:4)

你可以使用它,

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

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

答案 1 :(得分:1)

由于以下字符被视为空格

  • \t - 标签
  • \f - 表单Feed
  • \r - 回车
  • \n - 换行
  • \v - 垂直标签
  • - space

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

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

例如

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