Javascript Regex删除只包含空子项的空html标记
我需要解析一个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[^>]*
<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开始就被弃用了,那你为什么还在使用它呢?你应该更喜欢票数更多的答案。这就是问题所在,我想把它去掉。我有一个旧的数据库,我从那里获取这些信息。有些注释的格式保存为文本,我想去掉无用的元素和字体元素。我把它们换成了燕尾裤。这就是我要找的:)。完美的正则表达式!谢谢这就是我要找的:)。完美的正则表达式!