javascript - js 如何正则匹配没有内容的空标签并移除掉?
天蓬老师
天蓬老师 2017-04-10 17:48:43
[JavaScript讨论组]

js 如何正则匹配没有内容的空标签并移除掉?

html = "<p><b>小故事:两个人的任务</b></p>
<p><b>sdfsdfsdfsf</b></p>
<p><b>sdfsdfadfasff</b></p>
<p><b>两人听到这个声音,苦逼的相视一笑,之后便异口同声的说道,“头儿,有事儿您说话”</b></p>
<p><b> </b></p>
<p><b><b>来源:左潇龙 - 博客园</b></b></p>
<p><b> </b></p>
<p><b><b>链接:<a href="http://www.cnblogs.com/zuoxiaolong/p/4435486.html">http://www.cnblogs.com/zuoxiaolong/p/4435486.html</a></b><b>(点击尾部阅读原文前往)</b></b></p>
<p><b>2016-11-0716:31:02否</b><b><br></b></p>
<p></p>
<blockquote><b>《宁夏》梁静茹</b></blockquote><p style="text-align: justify;">初三盛夏,班里非常有才的一哥们,写了一篇作文《宁夏》。我记得那天语文课上,语文老师专门念了他的文。</p>
<p></p>
<blockquote><b>《宁夏》梁静茹</b></blockquote><p style="text-align: justify;">初三盛夏,班里非常有才的一哥们,写了一篇作文《宁夏》。我记得那天语文课上,语文老师专门念了他的文。</p>
";

补充答案:

var content = html;
var reg = /<([a-z]+?)(?:\s+?[^>]*?)?>\s*?<\/\1>/ig;
while (reg.test(content)) {
    content = content.replace(reg,"");
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
黄舟
/<([a-z]+?)(?:\s+?[^>]*?)?>\s*?<\/\1>/ig
html='<p id="fixedTools" class="hidden-xs hidden-sm">'+
'\n    <a id="backtop" class="hidden border-bottom" href="#"></a>'+
'\n'+
'\n    <p class="qrcodeWraper">'+
'\n        <a href="/app#qrcode"><span class="glyphicon glyphicon-qrcode"></span></a>'+
'\n        <img id="qrcode" class="border" alt="sf-wechat" src="https://sf-static.b0.upaiyun.com/v-581fe7b0/page/img/app/appQrcode.png">'+
'\n'+
'\n        <p class="qrcode-text"></p>'+
'\n    </p>'+
'\n</p>'

ptn=/<([a-z]+?)(?:\s+?[^>]*?)?>\s*?<\/\1>/ig
s = html.replace(ptn,'')
console.log(s)
PHP中文网

刚写成php了,不好意思
match(/<span>\S+</span>/g)

巴扎黑
'<a></a><a href=""></a><a>123</a>'.replace(/<[^>]*?><\/[^>]*?>/g,'')

嵌套标签处理不了。

怪我咯

不用正则的话,可以这样:

    var allNodes = document.querySelectorAll('*');
    [].forEach.call(allNodes, function(item) {
        if(!item.hasChildNodes()) {
            item.remove()
        }
    })
高洛峰

循环调用

var reg = /<[^>]*>[\s]*<\/[^>]*>/g
var str = '<a>   </a><a href=""><p></p></a><a>123</a>';
function regBlank(str){
    str = str.replace(reg,"")
    if(reg.test(str)){        
        regBlank(str)
    }else{
        console.log(str)   
    }
}
regBlank(str)
//<a>123</a>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号