如何删除 Javascript 中所有相邻的换行符和空格并将它们替换为单个换行符?

How to remove all adjacent newlines and whitespaces in Javascript and replace them with single newline?

假设我有这样的字符串:

Hello,     \n\r  \n\n\n \n      World \n\n     !

我希望它看起来像这样:

Hello,
World
!

所以只要有两个或多个相邻的换行符或换行符与一个或多个空格相邻,就应该用单个换行符替换它们。

如何在 JavaScript 中实现这一目标?

您可以使用 /(?: *[\n\r])+ */:

  • *[\n\r] 匹配文字白色 space 后跟换行符;
  • 使用+匹配一个或多个连续的白色space+换行符;
  • 使用*匹配模式末尾的零个或多个白色space;

var s = "Hello,     \n\r  \n\n\n \n      World \n\n     ! \n A new line";

console.log(s);

console.log(s.replace(/(?: *[\n\r])+ */g, '\n'));