Javascript 将双车厢 returns 替换为单车厢 returns

Javascript replace double carriage returns with single carriage returns

只是想在 Javascript 中用单车厢 returns 替换双车厢 returns。详情如下:

我在 Google 和 Stack Overflow 上搜索了这个问题,我发现了一堆用一个字符串替换另一个字符串的例子,但不是双回车 returns 与单回车returns(实质上是消除字符串中的空行)。我认为这个案例可能有些奇怪。

这是我需要的示例:

替换:

Line 1
Line 2


Line 3

Line 4

与:

Line 1
Line 2
Line 3
Line 4

我尝试了以下代码行(单独尝试,而不是一次全部):

stringReplace = stringReplace.replace(/\n\n/g, '\n');
stringReplace = stringReplace.replaceAll(/\n\n/g, '\n');
stringReplace = stringReplace.split('\n\n').join('\n');

我输入的一个例子是这样的(一行四个空行):

Line 1
Line 2




Line 3
Line 4

变成了(还是两行空行):

Line 1
Line 2


Line 3
Line 4

但我尝试用完全不同的东西替换双马车 return,在本例中是双等号:

stringReplace = stringReplace.replace(/\n\n/g, '==');

我输入:

Line 1




Line 2




Line 3


Line 4

你猜怎么着?按计划工作。

Line 1===
Line 2====
Line 3==
Line 4

任何人都知道出了什么问题吗?谢谢大家!

你应该匹配两个或更多个换行符(不是只是两个,而是两个或更多), 并替换为单个换行符:

const input = `Line 1
Line 2




Line 3
Line 4`;

const output = input.replace(/\n{2,}/g, '\n');
console.log(output);

另一种写法:\n\n+而不是\n{2,}(两种模式都匹配两个或多个换行符)