C#使用正则表达式过滤HTML代码
2009-03-15 13:34
330 查看
对于一些特殊的功能,我们需求对其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>"));
}
原文转自网站制作教程网:http://www.web2bar.cn/Article/3495.aspx
本文为大家介绍在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>"));
}
原文转自网站制作教程网:http://www.web2bar.cn/Article/3495.aspx
相关文章推荐
- ASP过滤SQL非法字符并格式化html代码(不错的功能函数集)
- 一个用C#过滤HTML代码的函数
- 用C#过滤HTML代码的函数【转自www.bitsCN.com】
- 过滤字符串中带的HTML代码
- 过滤掉字符串中的html代码
- 一个用C#过滤HTML代码的函数
- 用php过滤表单提交中的危险html代码
- java 正则表达式过滤掉html标签 过滤掉Html代码
- kindEditor存到mysqL数据库中的是html代码,取出的时候有没有办法将html代码过滤掉,只留下内容部分
- C#过滤HTML代码
- 用php过滤危险html代码的函数
- 过滤不安全的HTML代码
- Asp 怎样 过滤Html代码
- 用php过滤表单提交中的危险html代码
- 【.net】利用正则表达式过滤字符串中的HTML代码
- 如何过滤php中危险的HTML代码
- PHP技巧:php过滤危险html代码
- 一个用C#过滤HTML代码的函数
- 用php过滤危险html代码的函数