小弟在做 过滤非法字符、处理SQL过滤,判断整形 超链接后面更的非法字符
例如:http://localhost/NewsDetail.aspx?News_Type=1&News_Id=9这样就是正确的 在后面要是加一些特殊字符就后出错
假如:http://localhost/NewsDetail.aspx?News_Type=1&News_Id=9'.;/[]为这样 如果不过滤的话 就会出错!
asp可以通过asc码来判断
下面是我写的ASP的:
'处理标点符号、运算符号、大小字母、小写字母只留数字(48~57为0~9十个阿拉伯数字)
Function TeShuFuHao(a)
i=a
j=Len(i)
For m=1 To j
b=Asc(Mid(i,m,1))
If b>=48 And b<=57 Then
n=n&Chr(b)
End If
Next
TeShuFuHao=n
end functionasp.net的如下:
/// <summary>
/// 过滤非法字符,判断整形
/// </summary>
/// <param name="inputString1">等待处理的字符串</param>
/// <returns></returns>
public static string InputText2(object inputString1)
{
if (inputString1 == null || inputString1.ToString() == "") return "";
string inputString = inputString1.ToString();
StringBuilder retVal = new StringBuilder();
if (inputString != String.Empty)
{
inputString = inputString.Trim().ToLower();
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 = retVal.Replace("'", "");
retVal = retVal.Replace(";", "");
retVal = retVal.Replace(":", "");
retVal = retVal.Replace("{", "");
retVal = retVal.Replace("}", "");
retVal = retVal.Replace("[", "");
retVal = retVal.Replace("]", "");
retVal = retVal.Replace("?", "");
retVal = retVal.Replace(">", "");
retVal = retVal.Replace("<", "");
retVal = retVal.Replace(".", "");
retVal = retVal.Replace(",", "");
}
//if (!IsInt(retVal.ToString()))
//{
// HttpContext.Current.Response.Redirect(SiteCommon.SiteConst.URL_ERROR_PAGE);
//}
return retVal.ToString();
}
在上面红色的字体是替换了一些常见的特殊字符
如果按着这种写法一个一个的替换的话 很复杂 所以小弟希望大侠们能给一个简单的方法 直接把初了是数字的以外都替换为空!!小弟刚学.net 希望各位大哥大姐帮帮忙
小弟在次谢过!!!!!!!
例如:http://localhost/NewsDetail.aspx?News_Type=1&News_Id=9这样就是正确的 在后面要是加一些特殊字符就后出错
假如:http://localhost/NewsDetail.aspx?News_Type=1&News_Id=9'.;/[]为这样 如果不过滤的话 就会出错!
asp可以通过asc码来判断
下面是我写的ASP的:
'处理标点符号、运算符号、大小字母、小写字母只留数字(48~57为0~9十个阿拉伯数字)
Function TeShuFuHao(a)
i=a
j=Len(i)
For m=1 To j
b=Asc(Mid(i,m,1))
If b>=48 And b<=57 Then
n=n&Chr(b)
End If
Next
TeShuFuHao=n
end functionasp.net的如下:
/// <summary>
/// 过滤非法字符,判断整形
/// </summary>
/// <param name="inputString1">等待处理的字符串</param>
/// <returns></returns>
public static string InputText2(object inputString1)
{
if (inputString1 == null || inputString1.ToString() == "") return "";
string inputString = inputString1.ToString();
StringBuilder retVal = new StringBuilder();
if (inputString != String.Empty)
{
inputString = inputString.Trim().ToLower();
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 = retVal.Replace("'", "");
retVal = retVal.Replace(";", "");
retVal = retVal.Replace(":", "");
retVal = retVal.Replace("{", "");
retVal = retVal.Replace("}", "");
retVal = retVal.Replace("[", "");
retVal = retVal.Replace("]", "");
retVal = retVal.Replace("?", "");
retVal = retVal.Replace(">", "");
retVal = retVal.Replace("<", "");
retVal = retVal.Replace(".", "");
retVal = retVal.Replace(",", "");
}
//if (!IsInt(retVal.ToString()))
//{
// HttpContext.Current.Response.Redirect(SiteCommon.SiteConst.URL_ERROR_PAGE);
//}
return retVal.ToString();
}
在上面红色的字体是替换了一些常见的特殊字符
如果按着这种写法一个一个的替换的话 很复杂 所以小弟希望大侠们能给一个简单的方法 直接把初了是数字的以外都替换为空!!小弟刚学.net 希望各位大哥大姐帮帮忙
小弟在次谢过!!!!!!!
using System.Text.RegularExpressions;
string retVal = "你的字符串";
Regex regex = new Regex(@"[^\d]", RegexOptions.Compiled | RegexOptions.IgnoreCase);retVal = regex.Replace(retVal, "");
这个" ¦ "是什么 或者(||)关系 还是且(&&)关系
这里是让此 Replace 操作忽略大小写,同时指定将正则表达式编译为程序集,以加快速度。