博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

我收藏的特殊字符过滤函数

Posted on 2008-07-23 11:36  天轰穿  阅读(4754)  评论(13编辑  收藏  举报

 

       这个我这里自己一直用的几个函数,下面贴出来。
       希望尽量不是直接要实例就去用,而不关心他本来的意义和实现思路等。加油!

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;
    }