matthew Zhang

慢慢学习,慢慢进步!
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

特殊字符过滤函数

Posted on 2008-10-29 23:18  matthewZhang  阅读(220)  评论(0编辑  收藏  举报

摘自http://www.cnblogs.com/thcjp/archive/2008/07/23/1249389.html,个人备用..

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

/// <summary>
/// 对字符串进行检查和替换其中的特殊字符
/// </summary>
/// <param name="strHtml"></param>
/// <returns></returns>
public static string HtmlToTxt(string strHtml)
{
string[] aryReg ={
@"<script[^>]*?>.*?</script>",
@"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>",
@"([\r\n])[\s]+",
@"&(quot|#34);",
@"&(amp|#38);",
@"&(lt|#60);",
@"&(gt|#62);",
@"&(nbsp|#160);",
@"&(iexcl|#161);",
@"&(cent|#162);",
@"&(pound|#163);",
@"&(copy|#169);",
@"&#(\d+);",
@"-->",
@"<!--.*\n"
};

string newReg = aryReg[0];
string strOutput = strHtml;
for (int i = 0; i < aryReg.Length; i++)
{
Regex regex
= new Regex(aryReg[i], RegexOptions.IgnoreCase);
strOutput
= regex.Replace(strOutput, string.Empty);
}

strOutput.Replace(
"<", "");
strOutput.Replace(
">", "");
strOutput.Replace(
"\r\n", "");


return strOutput;
}


=================另外两个函数=====================
/// <summary>
/// 替换html中的特殊字符
/// </summary>
/// <param name="theString">需要进行替换的文本。</param>
/// <returns>替换完的文本。</returns>
public string HtmlEncode(string theString)
{
theString
= theString.Replace(">", "&gt;");
theString
= theString.Replace("<", "&lt;");
theString
= theString.Replace(" ", "&nbsp;");
theString
= theString.Replace(" ", "&nbsp;");
theString
= theString.Replace("\"", "&quot;");
theString = theString.Replace("\'", "'");
theString
= theString.Replace("\n", "<br/> ");
return theString;
}

/// <summary>
/// 恢复html中的特殊字符
/// </summary>
/// <param name="theString">需要恢复的文本。</param>
/// <returns>恢复好的文本。</returns>
public string HtmlDiscode(string theString)
{
theString
= theString.Replace("&gt;", ">");
theString
= theString.Replace("&lt;", "<");
theString
= theString.Replace("&nbsp;", " ");
theString
= theString.Replace("&nbsp;", " ");
theString
= theString.Replace("&quot;", "\"");
theString = theString.Replace("'", "\'");
theString
= theString.Replace("<br/> ", "\n");
return theString;
}