我想删除以下标记
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>', '');
等等。
但是使用正则表达式等我们可以在一步中完成相同的操作。
答案 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)