正则表达式删除空html标签,只包含空子

我需要解析一个HTML字符串并删除所有只包含空子元素的元素。

例:

不包含任何信息,必须替换为

我写了一个像这样的正则表达式:

 ]*>(]*>\s*)* 

但问题是它只捕获了三个中的两个级别。 在abobe示例中,未选择

元素(最外面的元素)。

你能帮我解决这个正则表达式吗?

这个正则表达式似乎有效:

 /(<(?!\/)[^>]+>)+(<\/[^>]+>)+/ 

查看您的示例的现场演示 。

使用jQuery并解析所有孩子。 对于每个孩子,您必须检查.html()是否为空。 如果是 – >使用.remove()删除当前元素(或者如果需要,删除父元素)。

为每个字符串做:

 var appended = $('.yourparent').append('YOUR HTML STRING'); appended.children().each(function () { if(this.html() === '') { this.parent().remove(); } }); 

如果有空子项,这将首先添加项目并删除。