替换javascript中重复的html-tags

时间:2019-02-26 17:14:36

标签: javascript replace quill

我正在使用quill.js编辑器来允许用户编写评论。 quill.js的问题是,如果他们按Enter键,则会生成一个新的参数。

<p><br></p>

这使他们可以创建无限的新行。例如输入:

fffff ffff fff
fff


fffffff



ff

将生成此html:

<p>fffff ffff fff</p>
<p>fff</p>
<p><br></p>
<p><br></p>
<p>fffffff</p>
<p><br></p>
<p><br></p>
<p><br></p>
<p>ff</p>

但是我想得到这样的结果:

<p>fffff ffff fff</p>
<p>fff</p>
<p><br></p>
<p>fffffff</p>
<p><br></p>
<p>ff</p>

因此,如果重复换行代码,则应将其替换为一行新行。我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您真的没有其他选择,则可以执行以下操作:

function cleanupHtml() {
  document.body.innerHTML = document.body.innerHTML.replace(/<p><br><\/p>/gi, '');
}

document.addEventListener('DOMContentLoaded', cleanupHtml);
<p>fffff ffff fff</p>
<p>fff</p>
<p><br></p>
<p><br></p>
<p>fffffff</p>
<p><br></p>
<p><br></p>
<p><br></p>
<p>ff</p>

答案 1 :(得分:0)

您可以检查gcc -o binary $CFLAGS $INCLUDES $CDEFS a.c b.c c.c d.c e.c是否出现两次或更多次,然后再出现新行;如果是,则将其替换为一个,如下所示:

<p><br></p>

您甚至可以:

const markup = `
<p>fffff ffff fff</p>
<p>fff</p>
<p><br></p>
<p><br></p>
<p>fffffff</p>
<p><br></p>
<p><br></p>
<p><br></p>
<p>ff</p>
<p><br></p>
`;

const result = markup.replace(/(<p><br><\/p>\n){2,}/g, '<p><br><\/p>\n');

console.log(result);

因此您将来可以轻松更改元素。