那些年,我收集的一些.net函数。分享给大家,项目中有些是经常用到的。

来源:岁月联盟 编辑:exp 时间:2012-03-06

分享几个常用的函数,希望对大家有帮助。
        一:由于类似在帖子,新闻列表的时候往往有个帖子。这时候就得过滤html标签了。过滤html标签的网上百度下有蛮多的。分享下当摘要中有图片的时候的过滤图片的函数:
      public string removeIme(string s)
         {
             string str = s;
             str.Replace("IMG", "img");
             string reg = "<img//s+[^(src>)]*src//s*=//s*[/"']{0,1}(?<SRC>[^(//s/"'>)]*)[/"']{0,1}//s{0,1}[^>]*>";
             while (Regex.IsMatch(str, reg))
             {
                 str = str.Replace(Regex.Match(str, reg).Value, "图片..");
 
            }
             r
 
  二:SQL注入攻击是web网站的安全难题。能否做到防注入也成为了重要课程。除了在sql语句,存储过程中做功夫外,我分享下对前台用户输入检测的一个函数。
     public static string InputText(string text, int maxLength)
         {
             text = text.Trim();
             if (string.IsNullOrEmpty(text))
                 return string.Empty;
             if (text.Length > maxLength)
                 text = text.Substring(0, maxLength);
             text = Regex.Replace(text, "[//s]{2,}", " ");    //two or more spaces
             text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|//n)*?>)", "/n");    //<br>
             text = Regex.Replace(text, "(//s*&[n|N][b|B][s|S][p|P];//s*)+", " ");    //&nbsp;
             text = Regex.Replace(text, "<(.|//n)*?>", string.Empty);    //any other tags
             text = text.Replace("'", "''");
             return text;
         }
 
三:ubb是当前流行,较为完全的代码。也是防范sql注入和跨站脚本的手段之一。分享下将ubb转化成html代码的函数。
    public static string decode(string argString)
         {
             string tString = argString;
             if (tString != "")
             {
                 Regex tRegex;
                 bool tState = true;
                 tString = tString.Replace("&", "&amp;");
                 tString = tString.Replace(">", "&gt;");
                 tString = tString.Replace("<", "&lt;");
                 tString = tString.Replace("/"", "&quot;");
                 tString = Regex.Replace(tString, @"/[br/]", "<br />", RegexOptions.IgnoreCase);
                 string[,] tRegexAry = {
           {@"/[p/]([^/[]*?)/[//p/]", "$1<br />"},
           {@"/[b/]([^/[]*?)/[//b/]", "<b>$1</b>"},
           {@"/[i/]([^/[]*?)/[//i/]", "<i>$1</i>"},
           {@"/[u/]([^/[]*?)/[//u/]", "<u>$1</u>"},
           {@"/[ol/]([^/[]*?)/[//ol/]", "<ol>$1</ol>"},
           {@"/[ul/]([^/[]*?)/[//ul/]", "<ul>$1</ul>"},
           {@"/[li/]([^/[]*?)/[//li/]", "<li>$1</li>"},
           {@"/[code/]([^/[]*?)/[//code/]", "<div class=/"ubb_code/">$1</div>"},
           {@"/[quote/]([^/[]*?)/[//quote/]", "<div class=/"ubb_quote/">$1</div>"},
           {@"/[color=([^/]]*)/]([^/[]*?)/[//color/]", "<font style=/"color: $1/">$2</font>"},
           {@"/[hilitecolor=([^/]]*)/]([^/[]*?)/[//hilitecolor/]", "<font style=/"background-color: $1/">$2</font>"},
           {@"/[align=([^/]]*)/]([^/[]*?)/[//align/]", "<div style=/"text-align: $1/">$2</div>"},
           {@"/[url=([^/]]*)/]([^/[]*?)/[//url/]", "<a href=/"$1/">$2</a>"},
           {@"/[img/]([^/[]*?)/[//img/]", "<img src=/"$1/" />"}
         };
                 while (tState)
                 {
                     tState = false;
                     for (int ti = 0; ti < tRegexAry.GetLength(0); ti++)
                     {
                         tRegex = new Regex(tRegexAry[ti, 0], RegexOptions.IgnoreCase);
                         if (tRegex.Match(tString).Success)
                         {
                             tState = true;
                             tString = Regex.Replace(tString, tRegexAry[ti, 0], tRegexAry[ti, 1], RegexOptions.IgnoreCase);
                         }
                     }
                 }
             }
             return tString;
         }
 
 
摘自 青牛客