Chinaunix

标题: 帮忙改进一正则:去除不期望的HTML标签 [打印本页]

作者: 暖暖咖啡    时间: 2008-06-10 09:14
标题: 帮忙改进一正则:去除不期望的HTML标签
在一段HTML代码中,我仅想保留a,img,p,div 这四个标签,欲通过正则在JAVASCRIPT中实现,按照自己的理解,已经写了一个,但是没达到预期目的,如下:

shtml = shtml.replace(/<\/?[^p|img|a|div][^>]*>/gi,"");

按我的理解:

首先以<开头
然后0或1个/
然后不等于p或img或a或div
然后不等于>的任何字符0或多个
最后以>结尾

但是结果不理想,还是有些HTML代码没能被去除,如iframe,input,并且所有的</a></div>等都被去除,请问这是什么原因呢?

[ 本帖最后由 暖暖咖啡 于 2008-6-10 09:35 编辑 ]
作者: percy    时间: 2008-06-10 15:05
shtml = shtml.replace(  /<\/?[^img|p|a|div].*?>/ , "");
作者: 暖暖咖啡    时间: 2008-06-10 15:34
标题: 回复 #2 percy 的帖子
不行呀
作者: realmon    时间: 2008-06-12 22:44
试试这个,不完全正确,但是应该能用

  1. shtml = shtml.replace(  /<\/?[^img|p|a|div]*>/ , "");
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2