Javascript Regex删除只包含空子项的空html标记

Javascript Regex删除只包含空子项的空html标记,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,我需要解析一个HTML字符串并删除所有只包含空子元素的元素 例如: <P ALIGN="left"><FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="1"><B></B></FONT></P> 不包含任何信息,必须替换为 我写了这样一个正则表达式: <\w+\b[^>]*>(<\w+\b[^>]*

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

例如:

<P ALIGN="left"><FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="1"><B></B></FONT></P>

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

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

<\w+\b[^>]*>(<\w+\b[^>]*>\s*</\w*\s*>)*</\w*\s*>
]*>(]*>\s*)*
但问题是它只捕捉到了三个关卡中的两个关卡。在abobe示例中,未选择
元素(最外层的元素)


您能帮我修复这个正则表达式吗?

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

对每个字符串执行以下操作:

var appended = $('.yourparent').append('YOUR HTML STRING');

appended.children().each(function () 
{
    if(this.html() === '')
    {
        this.parent().remove(); 
    }
});

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

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

对每个字符串执行以下操作:

var appended = $('.yourparent').append('YOUR HTML STRING');

appended.children().each(function () 
{
    if(this.html() === '')
    {
        this.parent().remove(); 
    }
});

如果有空的子项,这将首先添加项,然后删除项。

此正则表达式似乎有效:

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

请参见一个示例。

此正则表达式似乎有效:

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

请看一个例子。

做好准备,接受对regex+HTML问题的否决票。自HTML3以来,字体元素已被弃用,为什么您仍在使用它?你应该更喜欢票数更多的答案。这就是问题所在,我想把它去掉。我有一个旧的数据库,我从那里获取这些信息。有些注释的格式保存为文本,我想去掉无用的元素和字体元素。我用spansbrace yourself代替了它们,因为在regex+HTML问题上的否决票字体元素从HTML3开始就被弃用了,那你为什么还在使用它呢?你应该更喜欢票数更多的答案。这就是问题所在,我想把它去掉。我有一个旧的数据库,我从那里获取这些信息。有些注释的格式保存为文本,我想去掉无用的元素和字体元素。我把它们换成了燕尾裤。这就是我要找的:)。完美的正则表达式!谢谢这就是我要找的:)。完美的正则表达式!