读书人

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

发布时间: 2012-01-22 22:38:43 作者: rapoo

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

读书人网 >asp.net

热点推荐