[英]replace repeating html-tags in javascript
我正在使用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>
因此,如果重复换行代码,则应将其替换为一行新行。 我该怎么做呢?
如果您确实没有其他选择,则可以执行以下操作:
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>
您可以检查是否出现了两次或多次<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);
您甚至可以:
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 target = '<p><br><\\/p>\\n'; const result = markup.replace(new RegExp(`(${target}){2,}`, 'g'), target); console.log(result);
因此,您将来可以轻松更改元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.