首页 > 解决方案 > Javascript编辑文本文件 - 删除所有空行,但一个

问题描述

我刚开始学习 Javascript,我正在尝试实施一个我想到的项目。该项目是一个简单的文本编辑器,它将文本作为输入进行一些更正并使用固定文本发布输出。

输入文本作为数组导入。文本的每一行都是一个对象属性。inputText 用于在 div 内的浏览器中显示默认文本,而 outputText 是我用于编辑的文本。

inputText = loadStrings("v.txt");
outputText = inputText;

现在输入文本有一些句子。问题是中间有很多空行。

firstLine



secondLine






thirdLine

我想要实现的是删除所有空行,但只有一个,因此输出文本如下所示:

firstLine

secondLine

thirdLine

我正在寻找近 3 天的解决方案。我设法删除了所有空行,但这不是我想要的。如果空行不止一个,我想删除它们,但如果只有一个空行,则不要进行任何更改。

这段代码是我尝试过的众多代码之一。这将删除所有空行:

(来源:在 Javascript 中从数组中删除空元素

outputText = outputText.filter(function(e){
    return e.replace(/[\r\n]+/g, '\n')});

这是我使用的所有 HTML、CSS 和 JS 代码的代码笔。 https://codepen.io/theokondak/pen/KrNNVz

标签: javascriptarrays

解决方案


试试这个正则表达式:

e.replace(/([\r\n]){2,}/g, '\n\n')});

这将只匹配两个或多个连续的空行替换为空行。

我的测试代码:

var lines = 'firstLine\n\n\n\nsecodLine\n\n\n\n\n\n\nthirdLine';
/*
firstLine



secondLine






thirdLine
*/
console.log(lines.replace(/([\r\n]){2,}/g, '\n\n'));

/*
firstLine

secodLine

thirdLine
*/

推荐阅读