使用 javascript 替换开始和结束的多个 html 标签

Replace starting and ending multiple html tags using javascript

我想删除以下标签

  1.  <div>
  2.  </div>
  3.  <p>
  4.   </p>
  5.   <span>
  6.   </span>

var str =  '<div><p><span>Hello World</span></p></div>';

我能做到

str = str.replace('<div>', '');
str = str.replace('<p>', '');

等等。

但是使用正则表达式等我们可以一步完成。

不要为此使用正则表达式:RegEx match open tags except XHTML self-contained tags

解析 HTML 并检索您需要的内容。这是一个基本的,它从您提供的节点中检索文本。您可以进一步扩展它以满足您的需求。

 var container = document.createElement("div"); //load div in memory
 container.insertAdjacentHTML("afterbegin", str); //append the nodes into the container div.

 str = container.getElementsByTagName("span")[0].textContent || container.getElementsByTagName;("span")[0].innerText;

你甚至可以做到container.textContent || container.innerText;从字符串容器 HTML 元素中获取所有文本但没有节点。 (innerText 支持旧版浏览器,IE)。

试试这个模式:

/<\/?([a-z])+\>/g

Heres an example

RegExr v2.0 是一个非常方便的测试正则表达式的工具。要查看结果,请单击页面底部的 "substitution" 选项卡。

希望这就是您要找的。