[已解决问题] 替换危险字符
提问时间: 2008-06-11 16:44
悬赏分:10 浏览:222 次
public static string LetterReplace(string txt)
        {
            foreach (char a in txt)
            {
                switch(a)
                {
                    case '<': a.ToString().Replace("<", "<"); break;
                    case '>': a.ToString().Replace(">", ">"); break;
                }
            }
            return  //返回值
        }
我做了个危险字符的替换方法  但是到 return 这一步的时候 我不知道么继续写了 
在return 后 该么办啊
提问者:yeyang - 菜鸟二级
所有回答(7)

public static string LetterReplace(string txt)
{
if(txt == null)return null;
return txt.Replace("<","安全字符").Replace(">","安全字符");
}

2个月前   回答者:玉开 - 大侠五级
楼主,您的办法是不是效率太低了?
如果按照楼主自己现在的思路继续走下去的话,我觉得楼主应该设置一个变量用来存储要返回的值。参考如下:
public static string LetterReplace(string txt)
        {
            string backTxt;
            foreach (char a in txt)
            {
                switch(a)
                {
                    case '<': 
                           backTxt += a.ToString().Replace("<", "<"); 
                           break;
                    case '>': 
                           backTxt += a.ToString().Replace(">", ">"); 
                           break;
                    default: 
                           backTxt += a.ToString();
                           break;
                }                
            }
            return  backTxt;//返回值
        }
2个月前   回答者:datasky - 小虾三级
同意楼上的回答。
2个月前   回答者:李永京 - 菜鸟二级
public static string LetterReplace(string txt) 
        { 
            string backTxt; 
            foreach (char a in txt) 
            { 
                switch(a) 
                { 
                    case '<':  
                           backTxt += a.ToString().Replace("<", "<");  
                           break; 
                    case '>':  
                           backTxt += a.ToString().Replace(">", ">");  
                           break; 
                    default:  
                           backTxt += a.ToString(); 
                           break; 
                }                 
            } 
            return  backTxt;        }

2个月前   回答者:林间曦阳 - 小虾三级
可以用正则表达式
2个月前   回答者:瑞克梅塔 - 菜鸟二级
效率底下这样,
2个月前   回答者:jowo - 菜鸟二级
  /// <summary>
        /// 检测是否有Sql危险字符
        /// </summary>
        /// <param name="str">要判断字符串</param>
        /// <returns>判断结果</returns>
        public static bool IsSafeSqlString(string str)
        {
            return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
        }
//增强清理
        public static string InputText(string inputString, int maxLength)
        {
            StringBuilder retVal = new StringBuilder();

            // 检查是否为空
            if ((inputString != null) && (inputString != String.Empty))
            {
                inputString = inputString.Trim();

                //检查长度
                if (inputString.Length > maxLength)
                    inputString = inputString.Substring(0, maxLength);

                //替换危险字符
                for (int i = 0; i < inputString.Length; i++)
                {
                    switch (inputString[i])
                    {
                        case '"':
                            retVal.Append(""");
                            break;
                        case '<':
                            retVal.Append("<");
                            break;
                        case '>':
                            retVal.Append(">");
                            break;
                        default:
                            retVal.Append(inputString[i]);
                            break;
                    }
                }
                retVal.Replace("'", " ");// 替换单引号
            }
            return retVal.ToString();

        }
2个月前   回答者:泛舟 - 菜鸟二级
评论
2个月前   林间曦阳 :
可以试试用正则表达式来解决......

   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除