如何用正则表达式去掉html标签

如何用正则表达式去掉html标签,第1张

这是js清楚html标签的表达式:

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8">

        <title>Document</title>

        <style type="text/css">

        #div1.active{background: yellow}

        #div1 div{width: 100pxheight: 200pxdisplay: none}

        </style>

        <script type="text/javascript">

        window.onload=function()

        {

            var oDiv="<div id='div1'>"

                        +"<input type='button' value='1'/>"

                        +"<input type='button' value='2'/>"

                        +"<input type='button' value='3'/>"

                        +"<input type='button' value='4'/>"

                        +"<div>11</div>"

                        +"<div>22</div>"

                        +"<div>33</div>"

                        +"<div>44</div>"

                    +"</div>"

            console.log(oDiv+"\n")

            console.log(oDiv.replace(/<\/{0,}[a-z](.+?)>/gi,""))

        }

        </script>

    </head>

    <body>

        <div id='div1'>

            <input type="button" value="1"/>

            <input type="button" value="2"/>

            <input type="button" value="3"/>

            <input type="button" value="4"/>

            <div>11</div>

            <div>22</div>

            <div>33</div>

            <div>44</div>

        </div>

    </body>

</html>

不用语言可能会有些不同,但是区别不大。

</?font[^><]*>这个只却掉font标签的,保留除font以外的所有标签,如<img><p>等等. 同样的你需要去掉其他标签,只需要将里面的font换你要去掉的,就可以了.

</?[^/?(img)|(p)][^><]*>这个保留(这里我写的保留了img,p这两个标签)你指定的标签,其他的(包括font)全去掉, 如果你还有其他的标签想保留,直接在里面加一个 |(xxx)就行了,

</?[a-zA-Z]+[^><]*>这个就是我最上面写的那个,会去掉所有的标签,包括font .

</?[a-zA-Z]+[^><]*>这个表达式可以去掉所有HTML的标签

JAVA代码可以这样写:

public static String delTagsFContent(String content){

String patternTag = "</?[a-zA-Z]+[^><]*>"

String patternBlank = "(^\\s*)|(\\s*$)"

return content.replaceAll(patternTag, "").replaceAll(patternBlank, "")

}

为大家演示一个较为简单的函数吧,这一个函数所要做的事情就是要将保留的TAG通通串起来,然后生成一个正则表达式,接着就要将一些并不需要的TAG通通删除。具体的函数,如图所示:

大家可以发现上面这一个正则表达式里面是有bug的,什么bug呢?那就是假如我们将li标签保留了,但是在实际的运行过程中,大家会发现link标签也同样给保留下来了,保留a标签同样也会把addr标签给保留下来了。那么究竟有什么好的修正方法呢?当然有啦,最好的解决方案就是加\\b标签进行断言。具体的实现方法,如图所示:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6125303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存