下面这段代码是在网上找到的,功能是实现危险字符的过滤,但是在使用的时候后面那个参数iMaxLength设置为多少都会有问题,请教一下改怎么来设置呢?    public static string ClearStringInput(string sInputString, int iMaxLength)
    {
        //构造临时字符串数组
        StringBuilder retVal = new StringBuilder();
        if ((sInputString != null) && sInputString != String.Empty)
        {
            //清空字符串两端的空白符号
            sInputString = sInputString.Trim();
            //设置字符串的长度
            if (sInputString.Length > iMaxLength)
            {
                sInputString = sInputString.Substring(0, iMaxLength);
            }
            for (int i = 0; i < iMaxLength; i++)
            {
                switch (sInputString[i])
                {
                    //替换危险字符
                    case '"': retVal.Append("&quot;"); break;
                    case '<': retVal.Append("&lt;"); break;
                    case '>': retVal.Append("&gt"); break;
                    default: retVal.Append(sInputString[i]); break;
                }
            }            //替换字符“’”
            retVal.Replace("'", " ");
        }
        //返回处理后的字符串
        return retVal.ToString();
    }

解决方案 »

  1.   

    lz,什么问题呢?逻辑上面,应该没有什么错误。 如果想全部替换,就是 iMaxLength 等于 sInputString.Length既然做了循环,然后又做 Replace 这样的操作,这个函数不怎么样。
    -------------------------------------------------
                //替换字符“’”
                retVal.Replace("'", " ");
      
    ————————————————————————————————————
    写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。
      

  2.   

    这个函数明显是模仿ASP作的。在.net的世界里面根本不用那么麻烦直接用
    HttpContext.Current.Server.HtmlEncode(代码);
      

  3.   

    这个函数明显是模仿ASP作的。在.net的世界里面有个好东东叫正则表达式
      

  4.   

    这个函数明显是模仿ASP作的。在.net的世界里面根本不用那么麻烦直接用
    HttpContext.Current.Server.HtmlEncode(代码);---------------
    这是petshop里面的类