正则表达式匹配html过滤非法字符
正则表达式匹配html 过滤非法字符
匹配一个html标签,匹配table如下:
table.*? [ss]* /table
或
table.*? [ss]*? /table
以上两个表达式,一个加了 ? 和一个却不加 ? ,那么这有什么区别呢,
我们知道 ? 在正则表达式里是一个通配符:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
在这里,通过测试,我们得出这样的结论:在不加 ? 的情况下,在匹配下面一段内容的时候:
table 这是第一个table /table
我不是table里的内容
table 这是第二个table /table
我也不是table里的内容
table 这是第三个table /table
?
$str=preg_replace( /s+/ , , $str); //过滤多余回车
$str=preg_replace( / [ ]+/si , ,$str); //过滤 __( 号后面带空格)
$str=preg_replace( / !--.*?-- /si , ,$str); //注释
$str=preg_replace( / (!.*?) /si , ,$str); //过滤doctype
$str=preg_replace( / (/?html.*?) /si , ,$str); //过滤html标签
$str=preg_replace( / (/?head.*?) /si , ,$str); //过滤head标签
$str=preg_replace( / (/?meta.*?) /si , ,$str); //过滤meta标签
$str=preg_replace( / (/?body.*?) /si , ,$str); //过滤body标签
$str=preg_replace( / (/?link.*?) /si , ,$str); //过滤link标签
$str=preg_replace( / (/?form.*?) /si , ,$str); //过滤form标签
$str=preg_replace( /cookie/si , cookie ,$str); //过滤cookie标签
$str=preg_replace( / (applet.*?) (.*?) (/applet.*?) /si , ,$str); //过滤applet标签
$str=preg_replace( / (/?applet.*?) /si , ,$str); //过滤applet标签
$str=preg_replace( / (style.*?) (.*?) (/style.*?) /si , ,$str); //过滤style标签
$str=preg_replace( / (/?style.*?) /si , ,$str); //过滤style标签
$str=preg_replace( / (title.*?) (.*?) (/title.*?) /si , ,$str); //过滤title标签
$str=preg_replace( / (/?title.*?) /si , ,$str); //过滤title标签
$str=preg_replace( / (object.*?) (.*?) (/object.*?) /si , ,$str); //过滤object标签
$str=preg_replace( / (/?objec.*?) /si , ,$str); //过滤object标签
$str=preg_replace( / (noframes.*?) (.*?) (/noframes.*?) /si , ,$str); //过滤noframes标签
$str=preg_replace( / (/?noframes.*?) /si , ,$str); //过滤noframes标签
$str=preg_replace( / (i?frame.*?) (.*?) (/i?frame.*?) /si , ,$str); //过滤frame标签
$str=preg_replace( / (/?i?frame.*?) /si , ,$str); //过滤frame标签
$str=preg_replace( / (script.*?) (.*?) (/script.*?) /si , ,$str); //过滤script标签
$str=preg_replace( / (/?script.*?) /si , ,$str); //过滤script标签
$str=preg_replace( /网页特效/si , javascript ,$str); //过滤script标签
$str=preg_replace( /vbscript/si , vbscript ,$str); //过滤script标签
$str=preg_replace( /on([a-z]+)s*=/si , on\1= ,$str); //过滤script标签
$str=preg_replace( / #/si , , ,$str); //过滤script标签,如javascript:alert('aabb)
?