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

时间:2015-01-06 23:05:51

标签: javascript regex

我想删除以下标记

  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>', '');

等等。

但是使用正则表达式等我们可以在一步中完成相同的操作。

2 个答案:

答案 0 :(得分:2)

请勿使用正则表达式: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)。

答案 1 :(得分:0)

尝试这种模式:

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

Heres an example

RegExr v2.0是一个非常方便的测试正则表达式的工具。要查看结果,请单击&#34;替换&#34;页面底部的标签。

希望这就是你要找的东西。