首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

过滤危险字符函数,该如何解决

2012-01-22 
过滤危险字符函数下面这段代码是在网上找到的,功能是实现危险字符的过滤,但是在使用的时候后面那个参数iMa

过滤危险字符函数
下面这段代码是在网上找到的,功能是实现危险字符的过滤,但是在使用的时候后面那个参数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();
        }

[解决办法]
lz,什么问题呢?逻辑上面,应该没有什么错误。 如果想全部替换,就是 iMaxLength 等于 sInputString.Length


既然做了循环,然后又做 Replace 这样的操作,这个函数不怎么样。
-------------------------------------------------
//替换字符“’”
retVal.Replace( " ' ", " ");

————————————————————————————————————
写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。

[解决办法]
这个函数明显是模仿ASP作的。

在.net的世界里面根本不用那么麻烦直接用
HttpContext.Current.Server.HtmlEncode(代码);

---------------
这是petshop里面的类

热点排行