
/**//// <summary> 
/// 页面数据校验类 

/// 李天平 

/// 2004.8 

/// </summary>


public class PageValidate 


...{ 

private static Regex RegNumber = new Regex("^[0-9]+$"); 

private static Regex RegNumberSign = new Regex("^[+-]?[0-9]+$"); 

private static Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$"); 

private static Regex RegDecimalSign = new Regex("^[+-]?[0-9]+[.]?[0-9]+$"); //等价于^[+-]?d+[.]?d+$ 

private static Regex RegEmail = new Regex("^[/w-]+@[/w-]+/.(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样 

private static Regex RegCHZN = new Regex("[一-龥]"); 



public PageValidate() 


...{ 

} 


数字字符串检查#region 数字字符串检查 


/**//// <summary> 

/// 检查Request查询字符串的键值,是否是数字,最大长度限制 

/// </summary> 

/// <param name="req">Request</param> 

/// <param name="inputKey">Request的键值</param> 

/// <param name="maxLen">最大长度</param> 

/// <returns>返回Request查询字符串</returns> 

public static string FetchInputDigit(HttpRequest req, string inputKey, int maxLen) 


...{ 

string retVal = string.Empty; 

if(inputKey != null && inputKey != string.Empty) 


...{ 

retVal = req.QueryString[inputKey]; 

if(null == retVal) 

retVal = req.Form[inputKey]; 

if(null != retVal) 


...{ 

retVal = SqlText(retVal, maxLen); 

if(!IsNumber(retVal)) 

retVal = string.Empty; 

} 

} 

if(retVal == null) 

retVal = string.Empty; 

return retVal; 

} 


/**//// <summary> 

/// 是否数字字符串 

/// </summary> 

/// <param name="inputData">输入字符串</param> 

/// <returns></returns> 

public static bool IsNumber(string inputData) 


...{ 

Match m = RegNumber.Match(inputData); 

return m.Success; 

} 


/**//// <summary> 

/// 是否数字字符串可带正负号 

/// </summary> 

/// <param name="inputData">输入字符串</param> 

/// <returns></returns> 

public static bool IsNumberSign(string inputData) 


...{ 

Match m = RegNumberSign.Match(inputData); 

return m.Success; 

} 


/**//// <summary> 

/// 是否是浮点数 

/// </summary> 

/// <param name="inputData">输入字符串</param> 

/// <returns></returns> 

public static bool IsDecimal(string inputData) 


...{ 

Match m = RegDecimal.Match(inputData); 

return m.Success; 

} 


/**//// <summary> 

/// 是否是浮点数可带正负号 

/// </summary> 

/// <param name="inputData">输入字符串</param> 

/// <returns></returns> 

public static bool IsDecimalSign(string inputData) 


...{ 

Match m = RegDecimalSign.Match(inputData); 

return m.Success; 

} 

#endregion 




中文检测#region 中文检测 


/**//// <summary> 

/// 检测是否有中文字符 

/// </summary> 

/// <param name="inputData"></param> 

/// <returns></returns> 

public static bool IsHasCHZN(string inputData) 


...{ 

Match m = RegCHZN.Match(inputData); 

return m.Success; 

} 

#endregion 




邮件地址#region 邮件地址 


/**//// <summary> 

/// 是否是浮点数可带正负号 

/// </summary> 

/// <param name="inputData">输入字符串</param> 

/// <returns></returns> 

public static bool IsEmail(string inputData) 


...{ 

Match m = RegEmail.Match(inputData); 

return m.Success; 

} 

#endregion 




其他#region 其他 


/**//// <summary> 

/// 检查字符串最大长度,返回指定长度的串 

/// </summary> 

/// <param name="sqlInput">输入字符串</param> 

/// <param name="maxLength">最大长度</param> 

/// <returns></returns> 

public static string SqlText(string sqlInput, int maxLength) 


...{ 

if(sqlInput != null && sqlInput != string.Empty) 


...{ 

sqlInput = sqlInput.Trim(); 

if(sqlInput.Length > maxLength)//按最大长度截取字符串 

sqlInput = sqlInput.Substring(0, maxLength); 

} 

return sqlInput; 

} 


/**//// <summary> 

/// 字符串编码 

/// </summary> 

/// <param name="inputData"></param> 

/// <returns></returns> 

public static string HtmlEncode(string inputData) 


...{ 

return HttpUtility.HtmlEncode(inputData); 

} 


/**//// <summary> 

/// 设置Label显示Encode的字符串 

/// </summary> 

/// <param name="lbl"></param> 

/// <param name="txtInput"></param> 

public static void SetLabel(Label lbl, string txtInput) 


...{ 

lbl.Text = HtmlEncode(txtInput); 

} 

public static void SetLabel(Label lbl, object inputObj) 


...{ 

SetLabel(lbl, inputObj.ToString()); 

} 



#endregion 

} 

本文介绍了一种页面数据校验类的实现方法,包括数字、浮点数、电子邮件地址的有效性验证及中文字符检测等功能。通过正则表达式进行字符串匹配,确保输入数据符合预期格式。

2906

被折叠的 条评论
为什么被折叠?



