javascript - Javascript编辑文本文件 - 删除所有空行,但一个
问题描述
我刚开始学习 Javascript,我正在尝试实施一个我想到的项目。该项目是一个简单的文本编辑器,它将文本作为输入进行一些更正并使用固定文本发布输出。
输入文本作为数组导入。文本的每一行都是一个对象属性。inputText 用于在 div 内的浏览器中显示默认文本,而 outputText 是我用于编辑的文本。
inputText = loadStrings("v.txt");
outputText = inputText;
现在输入文本有一些句子。问题是中间有很多空行。
firstLine secondLine thirdLine
我想要实现的是删除所有空行,但只有一个,因此输出文本如下所示:
firstLine secondLine thirdLine
我正在寻找近 3 天的解决方案。我设法删除了所有空行,但这不是我想要的。如果空行不止一个,我想删除它们,但如果只有一个空行,则不要进行任何更改。
这段代码是我尝试过的众多代码之一。这将删除所有空行:
outputText = outputText.filter(function(e){
return e.replace(/[\r\n]+/g, '\n')});
这是我使用的所有 HTML、CSS 和 JS 代码的代码笔。 https://codepen.io/theokondak/pen/KrNNVz
解决方案
试试这个正则表达式:
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
*/
推荐阅读
- python - 如何在python中使输出百分比
- microsoft-graph-api - 使用 microsoft graph 获取日历信息,无需创建应用注册
- java - 无法使用 uri http://www.springframework.org/tags/form 解析 taglib
- git - Jenkins 无法更新 GitHub 分支状态检查
- docker - NodePort 错误连接被拒绝(Docker 桌面、Windows、Kubernetes)
- html - 来自java spring的美化引导模板
- python - pyside6和pyqt5的区别
- ios - 如何使用 Firebase Cloud Functions 检索 iOS 设备令牌以通过 Firebase Cloud Messaging 发送推送通知?
- github - GitHub 动作推送到万神殿
- amazon-web-services - 我们有一个在 AWS 上运行的基于 kops 的 k8s 集群,使用 EFS 作为持久卷进行部署;现在我们将使用 PVC 部署迁移到 EKS