HTML代码过滤函数

原创 2005年04月23日 11:40:00

/////////////////////////////////////////////////////////////////////
//
//  在线编辑器过滤函数:FiltrationHTML
//  作用:把从word、IE拷贝来的数据过滤,保留需要的标记及属性,去掉多
//        余,统一页面样式。
//  过滤:保留<p><sup><sub><table><tr><td><img><br>标记,以及<td>中的
//        colspan、rowspan属性,其它标记及属性全部清除。为表格替换统
//        一样式。
//  原理:先用特殊字符串"『〈"和"〉』"替换需要保留的标记"<"和">",然
//        后去掉不需要的,再把特殊字符恢复原状。这种字符串组合基本可
//        以避免被用户误输入,也可换成其它的。
//  缺点:过滤还不是特别全面。因为要复制的内容千变万化,有些特殊情况
//        没有解决。
//        在线编辑器会自动产生某些标记,<TBODY><a>,无法解决。
//  最后修改时间:2004.7.26 土狗
//
/////////////////////////////////////////////////////////////////////
function FiltrationHTML(HTML)
{
 var temp = HTML;
 temp = temp.replace(/<script[^>]*?>(.|/n)*?<//script>/gim,""); //过滤<script></script>块
 temp = temp.replace(/<(p |p>)/gi,  "『〈$1"); //分段  <p>
 temp = temp.replace(/<(//p)/gi,   "『〈$1"); //分段  </p>
 temp = temp.replace(/<(sup>)/gi,  "『〈$1"); //上标  <sup>
 temp = temp.replace(/<(//sup)/gi,  "『〈$1"); //上标末 </sup>
 temp = temp.replace(/<(sub)/gi,   "『〈$1"); //下标  <sub>
 temp = temp.replace(/<(//sub)/gi,  "『〈$1"); //下标末 </sub>
 temp = temp.replace(/<(table)/gi,  "『〈$1"); //表格  <table>
 temp = temp.replace(/<(//table)/gi, "『〈$1"); //表格末 </table>
 temp = temp.replace(/<(tr |tr>)/gi, "『〈$1"); //行   <tr>
 temp = temp.replace(/<(//tr)/gi,  "『〈$1"); //行末  </tr>
 temp = temp.replace(/<(td |td>)/gi, "『〈$1");//列    <td>
 temp = temp.replace(/<(//td)/gi,  "『〈$1"); //列末  </td>
 temp = temp.replace(/<(img )/gi,  "『〈$1"); //图片  <img>
 temp = temp.replace(/<(br)/gi,   "『〈$1"); //换行符 <br>
 temp = temp.replace(/(『〈[^>]*)>/gi,"$1〉』"); //右括号

 temp = temp.replace(/<[^>]*>/gi,"");   //过滤其它所有"<...>"标签
 temp = temp.replace(//&nbsp;/gi," ");   //替换所有&nbsp;为空格

 temp = temp.replace(/『〈/gi,"<");    //恢复<
 temp = temp.replace(/〉』/gi,">");    //恢复>

 temp = temp.replace(/(<table)[^>]*(>)/gi,"$1 border=/"1/" cellpadding=/"1/" cellspacing=/"1/" style=/"border-collapse: collapse/" bordercolor=/"#333333/" width=/"100/%/"$2"); //清除表格属性并加样式
 temp = temp.replace(/(<[^>]*)colspan(=[^/s>]*)/gi,"$1 『col$2』"); //给<td>中需要的属性加『』
 temp = temp.replace(/(<[^>]*)rowspan(=[^/s>]*)/gi,"$1 『row$2』"); //给<td>中需要的属性加『』

 temp = temp.replace(/(<tr)[^>]*(>)/gi,"$1$2");    //清除TR属性
 temp = temp.replace(/(<td)[^>『]*(>)/gi,"$1$2");   //清除不包含『』的TD的属性
 temp = temp.replace(/(<td)[^>『]*『/gi,"$1『");    //替换 <td...『之间内容
 temp = temp.replace(/(<[^>』]*』)[^>]*(『[^>『]*>)/gi,"$1$2");  //替换『』...『』之间内容
 temp = temp.replace(/(』)[^>』]*(>)/gi,"$1$2");    //替换『』...>之间内容
 temp = temp.replace(/<p[^>]*>/gi,"<p>");    //清除<p>中多余属性

 temp = temp.replace(/『(col)(=/d{1,4})』/gi," $1"+"span"+"$2");  //还原  colspan
 temp = temp.replace(/『(row)(=/d{1,4})』/gi," $1"+"span"+"$2");  //还原  rowspan
 temp = temp.replace(/(<img)[^>]*(>)/gi,"$1 src=/"/""+"$2");  //替换  <img>
 
 return temp;
}

php过滤html(php过滤html函数)

and echo strip_tags($text, ''); //过滤除开和外的所有标签 ?> 上面将输出的结果是: Test paragrap...
  • qiyuan371
  • qiyuan371
  • 2011年01月04日 09:56
  • 4710

过滤掉 html代码

#region 过滤掉 html代码 public static string StripHTML(string strHtml) { string [] aryReg ={ @"]*?>.*?", ...
  • aoeagle
  • aoeagle
  • 2007年11月22日 15:16
  • 317

C#过滤所有HTML代码的函数

过滤掉 html代码#region 过滤掉 html代码 public static string StripHTML(string strHtml) ...{ string [] aryReg =....
  • hengxing6868
  • hengxing6868
  • 2008年01月18日 11:53
  • 388

如何过滤掉字符串中的html代码

1string ss = @"过滤掉字符串代dfdsfs";2ss =System.Text.RegularExpressions.Regex.Replace(s,"]+>","");3Respons...
  • ynx2000
  • ynx2000
  • 2007年09月28日 11:42
  • 1018

过滤Html代码

///         /// 过滤Html标签        ///         ///         ///         public static string checkStr(st...
  • shuyizhi
  • shuyizhi
  • 2010年12月17日 13:54
  • 339

html代码过滤

    /**     * This method takes a string which may contain HTML tags (ie, <b>,     * <table...
  • missyesterday
  • missyesterday
  • 2005年04月06日 14:14
  • 839

过滤html代码

====================================================== 注:本文源代码点此下载 =============================...
  • javazhuanzai
  • javazhuanzai
  • 2012年01月16日 04:19
  • 169

过滤HTML代码

public String filterHtml(String value ){  value = value.replaceAll("&","&"); value = value.repla...
  • wangyun_java
  • wangyun_java
  • 2011年02月25日 09:32
  • 316

kindeditor html代码过滤 首发

官方 3. 为什么会丢失某些HTML标签,是不是编辑器的BUG? 这是因为3.4版本以前编辑器默认开启了过滤模式(filterMode:true)。当filterMode为true时,编辑...
  • zhou_xuexi
  • zhou_xuexi
  • 2016年07月05日 17:33
  • 771

用C#过滤HTML代码的函数。

     正好有时间所以用C#写了一段正则表达式,作用是删除 Page 里面Code 中的 HTML标签,这在做采集信息,消除其中的HTML很有用处。 以下是引用片段:public string ch...
  • abaal888
  • abaal888
  • 2008年08月28日 08:46
  • 312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTML代码过滤函数
举报原因:
原因补充:

(最多只允许输入30个字)