猿问

Javascript用单回车替换双回车

只是试图用 Javascript 中的单回车替换双回车。详细信息如下:


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


这是我需要的示例:


代替:


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

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


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

我输入:


Line 1





Line 2





Line 3



Line 4

你猜怎么了?按计划进行。


Line 1===

Line 2====

Line 3==

Line 4

有人知道出了什么问题吗?感谢大家!


慕的地8271018
浏览 170回答 1
1回答

猛跑小猪

您应该匹配两个或多个换行符(不仅仅是两个,而是两个或多个),并替换为单个换行符:const input = `Line 1Line 2Line 3Line 4`;const output = input.replace(/\n{2,}/g, '\n');console.log(output);另一种写法:\n\n+代替\n{2,}(两种模式都匹配两个或多个换行符)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答