Power by DMForum.NET!
RSS | ATOM | WAP
DMForum.NET 官方支持讨论区 > 技术区 > WEB开发技术

浏览主题:??b?tbg影配w?京.??????????

主题:??b?tbg影配w?京.??????????
自在的尘
普通会员
5级
等级:侠之大者
发帖:940
金钱:1205
经验:3319
性别:帅哥
状态:离线
注册:2006-8-8 16:09:00
正则过滤指定HTML(JS)  
[ 2007-7-1 13:25:02 ]

抄其它网站的东西,直接复制过来,发现一堆的垃圾代码,就写了一个东西,过滤指定的代码。有兴趣的可以继续完善下。

这个函数有一个小毛病,在过滤干净的<img标签时,会误杀下一个标签。有兴趣的可以给偶完善。

function CheckHTML(Str){
  var S = Str
  //S = S.replace(/<a\s(href=\S+)(.+>)/gi ,"[[[a $1")
  //S = S.replace(/<a\s(.+\s)(href=\S+)(.+>)/gi ,"[[[a $2 >")
  //S = S.replace(/<\/a>/gi ,"[[[/a>")
  S = S.replace(/<img\s(src=.+)[<|>]>/gi ,"[[[img $1 ")
  S = S.replace(/<img\s(src=\S+)(.+[<|>])/gi ,"[[[img $1 ")
  S = S.replace(/<img\s(.+\s)(src=\S+)(.+[<|>])/gi ,"[[[img $2 >")
  
  S = S.replace(/<br?>/gi , "[[[br/>")
  S = S.replace(/<p(\s[^/]+>)/gi , "[[[p> ")
  S = S.replace(/<\/p>/gi , "[[[/p>")
  
  S = S.replace(/<(table+\s)/gi ,"[[[$1 ")
  S = S.replace(/<\/table?>/gi , "[[[/table>")  
  S = S.replace(/<(tr.+>)/gi ,"[[[tr>")
  S = S.replace(/<\/tr?>/gi , "[[[/tr>")
  S = S.replace(/<(td.+)/gi ,"[[[$1")
  S = S.replace(/<\/td?>/gi , "[[[/td>")
  
  S = S.replace(/<.+?>/gi , "")//去掉所有HTML代码
  S = S.replace(/\[\[\[/gi , "<")  
  return S
}

自在的尘
普通会员
5级
等级:侠之大者
发帖:940
金钱:1205
经验:3319
性别:帅哥
状态:离线
注册:2006-8-8 16:09:00
RE:??b?tbg影配w?京.??????????  
[ 2007-7-1 14:06:14 ]

刚才改了下,好象没有发现误杀的现象了。。。睡觉去。

function CheckHTML(Str){
  var S = Str
  //S = S.replace(/<a\s(href=\S+)(.+>)/gi ,"[[[a $1")
  //S = S.replace(/<a\s(.+\s)(href=.+s)(.+>)/gi ,"[[[a $2 >")
  //S = S.replace(/<\/a>/gi ,"[[[/a>")

  S = S.replace(/<img\s(src=\S+)(.*?>)/gi ,"[[[img $1>")
  S = S.replace(/<img\s(.+\s)(src=.*\s)(.*?>)/gi ,"[[[img $2 ")

  S = S.replace(/<br?>/gi , "[[[br/>")
  S = S.replace(/<p(.*?>)/gi , "[[[p>")
  S = S.replace(/<\/p>/gi , "[[[/p>")

  S = S.replace(/<(table+\s)/gi ,"[[[$1 ")
  S = S.replace(/<\/table?>/gi , "[[[/table>")  
  S = S.replace(/<(tr.+>)/gi ,"[[[tr>")
  S = S.replace(/<\/tr?>/gi , "[[[/tr>")
  S = S.replace(/<(td.+)/gi ,"[[[$1")
  S = S.replace(/<\/td?>/gi , "[[[/td>")

  S = S.replace(/<.+?>/gi , "")//去掉所有HTML代码
  S = S.replace(/\[\[\[/gi , "<")  
  alert("HTML代码清理完毕。")
  return S
}

自在的尘
普通会员
5级
等级:侠之大者
发帖:940
金钱:1205
经验:3319
性别:帅哥
状态:离线
注册:2006-8-8 16:09:00
RE:??b?tbg影配w?京.??????????  
[ 2007-7-1 18:16:47 ]

第二个虽然没误杀的现象,但对td标签的过滤不太爽,,又修改了下。基本跟我手工过滤差不多了。


js 程序代码

function CheckHTML(Str){
    
var S = Str
    
//S = S.replace(/<a\s(href=\S+)(.+>)/gi ,"[[[a $1")
    //S = S.replace(/<a\s(.+\s)(href=.+s)(.+>)/gi ,"[[[a $2 >")
    //S = S.replace(/<\/a>/gi ,"[[[/a>")
    S = S.replace(/<img\s(src=\S+)(.*?>)/gi ,"[[[img $1>")
    S 
= S.replace(/<img\s(.+\s)(src=.*\s)(.*?>)/gi ,"[[[img $2 ")
    S 
= S.replace(/<br?>/gi , "[[[br/>")
    S 
= S.replace(/<p(.*?>)/gi , "[[[p>")
    S 
= S.replace(/<\/p>/gi , "[[[/p>")
    S 
= S.replace(/<(table+\s)/gi ,"[[[$1 ")
    S 
= S.replace(/<\/table?>/gi , "[[[/table>")    
    S 
= S.replace(/<(tr.+>)/gi ,"[[[tr>")
    S 
= S.replace(/<\/tr?>/gi , "[[[/tr>")
    S 
= S.replace(/<(td.*)(rowspan.\d.|colspan.\d.)(.*?)>/gi ,"[[[td $2>")
    S 
= S.replace(/<(td.+?)>/gi ,"[[[td>")
    S 
= S.replace(/<\/td?>/gi , "[[[/td>")
    S 
= S.replace(/<.+?>/gi , "")//去掉其它HTML代码
    S = S.replace(/\[\[\[/gi , "<")    
    
return S
}

编辑标志
本帖最后由[自在的尘]在 2007-7-1 18:18:12 编辑
完美行动
论坛版主
4级
等级:职业侠客
发帖:276
金钱:1750
经验:9766
性别:帅哥
状态:离线
注册:2006-8-4 8:45:00
RE:??b?tbg影配w?京.??????????  
[ 2007-7-1 20:10:31 ]

好哎,可以直接拿来用了

我佛慈悲
(呕吐你)
普通会员
3级
等级:护卫
发帖:110
金钱:1110
经验:3475
性别:帅哥
状态:离线
注册:2006-10-16 10:31:00
RE:??b?tbg影配w?京.??????????  
[ 2007-7-5 10:13:18 ]

这个东西不错,

前几天刚在网上找了

找的哪个不是很好。

月临河
(你管不着)
论坛版主
3级
等级:长史
发帖:96
金钱:770
经验:7979
性别:帅哥
状态:离线
注册:2006-7-30 10:19:00
RE:??b?tbg影配w?京.??????????  
[ 2007-7-23 9:30:07 ]

[[[

这些是什么玩艺儿?

小艺叔叔
普通会员
1级
等级:新手上路
发帖:2
金钱:20
经验:104
性别:保密
状态:离线
注册:2007-11-21 2:50:00
RE:??b?tbg影配w?京.??????????  
[ 2007-11-21 2:57:24 ]

用不着这样复杂,直接创建一个DIV标签(不用附加到HTML里面),然后把你要的转换的HTML附给Div标签:

div.innerHTML = 'fsdf<br>fdsf'     //如

再然后,读div.innerText,就是你转换的结果了(系统自带的更值得相信)。


回到顶部
Powered by DMForum.NET  1.4 Beta . URIMAP enabled. DEBUG enabled.
Copyright © 2003-2006 Devms.Com. All rights reserved.