这是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标签进行断言。具体的实现方法,如图所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)