首页 > 解决方案 > 如何使用 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>. 是否有更聪明的方法,例如正则表达式或方法在单个操作中执行此操作?

标签: javascript

解决方案


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());


推荐阅读