ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C#使用正则表达式过滤HTML代码

C#使用正则表达式过滤HTML代码

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-03-16 14:48:06 0 删除 编辑

对于一些特殊的功能,我们需求对其HTML代码进行过滤,比如不可以进行HTML代码留言等地方.

本文为大家介绍在asp.net下使用C#语言实现的正则表达式过滤HTML代码

以下是过滤HTML代码功能方法.

public static String getTxtWithoutHTMLElement (String element)
  {

  // String reg="< [^< |^>]+>";

  // return element.replaceAll(reg,"");

  if(null==element||"".equals(element.trim()))

  {

  return element;

  }

  Pattern pattern=Pattern.compile("< [^< |^>]*>");

  Matcher matcher=pattern.matcher(element);

  StringBuffer txt=new StringBuffer();

  while(matcher.find())

  {

  String group=matcher.group();

  if(group.matches("< [\\s]*>"))

  {

  matcher.appendReplacement(txt,group);

  }

  else

  {

  matcher.appendReplacement(txt,"");

  }

  }

  matcher.appendTail(txt);

  repaceEntities(txt,"&","&");

  repaceEntities(txt,"< ","< ");

  repaceEntities(txt,">",">");

  repaceEntities(txt,""","\"");

  repaceEntities(txt," ","");

  return txt.toString();

  }
 


  下面是调用方法进行测试

         public void testGetTxtWithoutHTMLElement ()
  {

  assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("< a href='a/test'>test< /a>"));

  assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("< a href='a/test'>test"));

  assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("< input type='text'>test< /input>"));

  assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("< p>test"));

  assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("< table>< tr>< td>test< /td>< /tr>< /table>"));

  assertEquals("te< st",ExcelHssfView.getTxtWithoutHTMLElement("< p>te< st"));

  assertEquals("te>st",ExcelHssfView.getTxtWithoutHTMLElement("< p>te>st"));

  assertEquals("tst",ExcelHssfView.getTxtWithoutHTMLElement("< p>t< e>st"));

  assertEquals("t< st",ExcelHssfView.getTxtWithoutHTMLElement("< p>t< < e>st"));

  assertEquals("< >test",ExcelHssfView.getTxtWithoutHTMLElement("< p>< >test"));

  assertEquals("< >test",ExcelHssfView.getTxtWithoutHTMLElement("< p>< >test"));

  assertEquals("< < >test",ExcelHssfView.getTxtWithoutHTMLElement("< p>< < >test"));

  assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("< table>< tr>< td> test< /td>< /tr>< /table>"));

  }

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-567487/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5309131