首页 > 解决方案 > 如何匹配字符串中的多个“\n”并将其替换为单个“\n”

问题描述

我想替换多个“\n”并用给定字符串中的单个“\n”替换它

例子

const str = "THIS IS A TEXT \n\n\n THIS IS A TEXT \n\n\n"
console.log(str.replaceAll(/some_regex/, '\n'));

输出 "THIS IS A TEXT \n THIS IS A TEXT \n"

标签: javascriptregex

解决方案


编辑后,以下解决方案意义不大,因为您希望\n替换 1 个或多个 s。所以/(\n)+/应该为你工作

const str = "THIS IS A TEXT \n\n\nTHIS IS A TEXT \n\n\n\n\n"
console.log(str.replaceAll(/(\n)+/g, 'FOO'));


您可以使用/(\n){3,}/匹配重复 3 次或更多次的模式

const str = "THIS IS A TEXT \n\n\nTHIS IS A TEXT \n\n\n\n\n"
console.log(str.replaceAll(/(\n){3,}/g, 'FOO'));

2次以上

const str = "THIS IS A TEXT \nTHIS IS A TEXT \n\n\n\n\n"
console.log(str.replaceAll(/(\n){2,}/g, 'FOO'));


推荐阅读