javascript - 如何使用 JavaScript 替换文本的多个实例?
问题描述
<p><br></p>
我想防止用户在文本编辑器中输入多个空段落,并使用以下方法我可以从文本编辑器中的消息文本中删除一个。
var str = content.replace('<p><br></p>', '');
但是,我需要删除所有<p><br></p>
部分,例如<p><br></p><p><br></p>Lorem Ipsum is simply dummy text<p><br></p><p><br></p><p><br></p>
. 是否有更聪明的方法,例如正则表达式或方法在单个操作中执行此操作?
解决方案
你replace
只会完全删除'<p><br></p>'
。
使用适当的 DOM 方法删除没有内容(或只有空白内容)的元素可能会更成功。该片段演示了模型文档正文中的一些假设元素。
document.body.innerHTML = `
<p><br></p>
<p>
<br>
</p>
<p>Lorem Ipsum is simply dummy text</p>
<p>
<br>
</p>
<p><br> </p>
<p><br></p>
<p> <br>
<p><br></p>
</p>`;
document.querySelectorAll("p").forEach(el => {
if (!el.textContent.trim()) {
el.parentNode.removeChild(el)
};
});
console.log(document.body.innerHTML.trim());