Javascript正则表达式删除不匹配的结束HTML标签?

标签 javascript html regex parsing element

我正在尝试删除 javascript 中过多的结束标记以及此后的任何内容。

这是一个可能的示例:

<div class="dummy">
    <div class="main">
        <div></div>
        <img src="a.jpg">
        <br>
        <img src="b.jpg />
        <strong>
            <span>text</span>
        </strong>
    </div>
</div>
    ***excessive tags below***
</div>
</div>
<div class="footer">
    text
</div>
</body>
</html>

关于如何有效地做到这一点有什么想法吗? 我想要提取的部分始终是一个div,但问题是它可能有尽可能多的嵌套div,我不知道如何处理这种情况。

如果可以分多个步骤完成或使用回调来完成也可以,只要它有效。

编辑 我的问题实际上比看起来更容易。 示例始终以我要提取的 div 开头。 所以我需要做的就是找到匹配的结束标签,并过滤后面的任何内容。 不关心任何其他标签...

最佳答案

不要使用正则表达式,根据我的理解,你想保留虚拟类 div 和页脚类 div 那么为什么不用它替换正文呢?

例如

var dummy = document.getElementsByClassName('dummy')[0];
var footer = document.getElementsByClassName('footer')[0]

var body = document.getElementsByTagName('body')[0];
body.innerHTML = '';
body.appendChild(dummy);
body.appendChild(footer);

https://jsfiddle.net/1kq11ry2/

关于Javascript正则表达式删除不匹配的结束HTML标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709986/

相关文章:

javascript - 将 2 个 div 的值复制到单个输出 div

javascript - 如何通过引用设置值对象

html - 颜色不被子元素继承?

java - 检查特殊字符在 Java 中好还是在 MYSQL 中好?

python - 替换子字符串,进行额外处理

javascript - 最小的 CSS 和 HTML 框在最上面但不按顺序排列

javascript - setTimeout 和 mouseout 问题

javascript - 我的 HTML Div 元素在页面加载时立即消失

php - 在使用相同脚本提交时从 html 表单发送带有 PHP 的电子邮件

python - 如何检查正则表达式是否完全匹配字符串,即 - 字符串不包含任何额外字符?