如果字符串中存在非法字符如: ~!@#$%^&*()+=|{}':;',\用正则表达式替换掉这些非法字符?求C#代码~!

解决方案 »

  1.   

    /// <summary>
      /// 检查是否含有非法字符
      /// </summary>
      /// <param name="str">要检查的字符串</param>
      /// <returns></returns>
      public static bool ChkBadChar(string str)
      {
      bool result = false;
      if (string.IsNullOrEmpty(str))
      return result;
      string strBadChar, tempChar;
      string[] arrBadChar;
      strBadChar = "@@,+,',--,%,^,&,?,(,),<,>,[,],{,},/,\\,;,:,\",\"\"";
      arrBadChar = SplitString(strBadChar, ",");
      tempChar = str;
      for (int i = 0; i < arrBadChar.Length; i++)
      {
      if (tempChar.IndexOf(arrBadChar[i]) >= 0)
      result = true;
      }
      return result;
      }  /// <summary>
      /// 过滤非法字符
      /// </summary>
      /// <param name="str"></param>
      /// <returns></returns>
      public static string ReplaceBadChar(string str)
      {
      if (string.IsNullOrEmpty(str))
      return "";
      string strBadChar, tempChar;
      string[] arrBadChar;
      strBadChar = "@@,+,',--,%,^,&,?,(,),<,>,[,],{,},/,\\,;,:,\",\"\"";
      arrBadChar = SplitString(strBadChar, ",");
      tempChar = str;
      for (int i = 0; i < arrBadChar.Length; i++)
      {
      if (arrBadChar[i].Length > 0)
      tempChar = tempChar.Replace(arrBadChar[i], "");
      }
      return tempChar;
      }
     /// <summary>
      /// 替换sql语句中的有问题符号
      /// </summary>
      public static string ReplaceBadSQL(string str)
      {
      string str2 = "";
      if (string.IsNullOrEmpty(str))
      {
      return "";
      }
      string str1 = str;
      string[] strArray = new string[] { "'", "--" };
      StringBuilder builder = new StringBuilder(str1);
      for (int i = 0; i < strArray.Length; i++)
      {
      str2 = builder.Replace(strArray[i], "").ToString();
      }
      return builder.Replace("@@", "@").ToString();
      }
      

  2.   


    public string CheckSql(string str) 
            { 
                string s=string.Empty ;
                if (str==null)
                { 
                    s = string.Empty ;
                }
                else
                {
                    s = str.Replace("'","").Replace("*","").Replace("select","")
                           .Replace("where","").Replace(";","").Replace("(","").Replace(")","").Replace("drop","").Replace("DROP","").Replace("and","").Replace("or","").Replace("delete","").Replace("asc","").Replace("<","").Replace(">","").Replace("=","").Replace(";","").Replace("&","").Replace("*","").Replace(" ","");
                } 
                return s;
            }
      

  3.   


                string a = @"~!1234@#dfsf$%^sdff&sdfdf*(4kjg)+=|{}':;',\";
                a = Regex.Replace(a, @"[~!@#$%\^&*()+=|{}':;',\\]", "");
      

  4.   

    public string CheckSql(string str)  
      {  
      string strBadChar = "@@,+,',--,%,^,&,?,(,),<,>,[,],{,},/,\\,;,:,\",\"\"";
      if (string.IsNullOrEmpty(str))
      {  
         return str;
      }
      else
      {
          foreach(String s in strBadChar )
              str=str.Replace(s,"");
       }  
      return str;
      }
      

  5.   

    如果要把所有特殊字符都替换            string a = @"~!1234@#dfsf$%^s   df f&sdf中文df*(4kjg)+=|{}':;',\";
                Console.WriteLine( Regex.Replace(a, @"[^\w\d\s]", ""));//不替换空格
                Console.WriteLine(Regex.Replace(a,@"[\W]",""));//空格也替换