Raysoft.Framework.Validate.ValidateHelper
来源:互联网 发布:mysql 删除表某个字段 编辑:程序博客网 时间:2024/06/08 01:33
using System;using System.Collections.Generic;using System.Text;using System.Text.RegularExpressions;namespace Raysoft.Framework.Validate{ public class ValidateHelper { 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("[\u4e00-\u9fa5]");//中文 private static Regex RegQQ = new Regex("[1-9][0-9]{4,}");//匹配腾讯QQ号 private static Regex RegTel = new Regex("d{3}-d{8}|d{4}-d{7}");//Tel匹配国内电话号码 private static Regex RegURL = new Regex("[a-zA-z]+://[^s]*");//URL private static Regex RegZipCode = new Regex("[1-9]d{5}(?!d)");//CN 邮政编码 private static Regex RegIDCard = new Regex("d{15}|d{18}");//匹配身份证:d{15}|d{18} private static Regex RegHTML = new Regex("<(S*?)[^>]*>.*?|<.*? />");//匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? /> private static Regex RegPassWord = new Regex("^[a-zA-Z]w{5,17}$"); //验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间 private static Regex Reg26A_Z = new Regex("^[A-Za-z]+$");//只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$” private static Regex Reg26Large_A_Z = new Regex("^[A-Z]+$");//只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$” private static Regex Reg26Small_A_Z = new Regex("^[a-z]+$");//只能输入由26个小写英文字母组成的字符串:“^[a-z]+$” private static Regex Reg0_9_A_Z = new Regex("^[A-Za-z0-9]+$");//只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$” private static Regex Reg0_9_A_Z_ = new Regex("^w+$");//只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$” /// <summary> /// 无参数构造方法 /// </summary> public ValidateHelper() { } /// <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; } #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 /// <summary> /// 验证是否合法的URL /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool IsURL(string InputStr) { Match m = RegURL.Match(InputStr); return m.Success; } /// <summary> /// 验证电话号码是否合法 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool IsTelNumber(string InputStr) { Match m = RegTel.Match(InputStr); return m.Success; } /// <summary> /// 验证邮政编码 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool IsZipCode(string InputStr) { Match m = RegZipCode.Match(InputStr); return m.Success; } /// <summary> /// 验证QQ号 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool IsQQ(string InputStr) { Match m = RegQQ.Match(InputStr); return m.Success; } /// <summary> /// 验证身份证 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool IsIDCard(string InputStr) { Match m = RegIDCard.Match(InputStr); return m.Success; } /// <summary> /// 验证用户密码 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool IsPassWord(string InputStr) { Match m = RegPassWord.Match(InputStr); return m.Success; } /// <summary> /// 验证只能输入由26个英文字母组成的字符串 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool Is26A_Z(string InputStr) { Match m = Reg26A_Z.Match(InputStr); return m.Success; } /// <summary> /// 只能输入由26个大写英文字母组成的字符串 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool Is26Large_A_Z(string InputStr) { Match m = Reg26Large_A_Z.Match(InputStr); return m.Success; } /// <summary> /// 只能输入由26个小写英文字母组成的字符串 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool Is26Small_A_Z(string InputStr) { Match m = Reg26Small_A_Z.Match(InputStr); return m.Success; } /// <summary> /// 只能输入由数字和26个英文字母组成的字符串 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool Is0_9_AZ_Str(string InputStr) { Match m = Reg0_9_A_Z.Match(InputStr); return m.Success; } /// <summary> /// 只能输入由数字和26个英文字母组成的字符串和下划线 /// </summary> /// <param name="InputStr"></param> /// <returns></returns> public static bool Is0_9_A_Z_Str(string InputStr) { Match m = Reg0_9_A_Z_.Match(InputStr); return m.Success; } #region 日期 /// <summary> /// 是否是日期格式 /// </summary> /// <param name="inputData"></param> /// <returns></returns> public static bool IsDateTime(string inputData) { bool flag = false; string regex = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))"; //日期部分 regex += @"(\s(((0?[0-9])|([1][0-9])|([2][0-4]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$"; //时间部分 RegexOptions options = ((RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline) | RegexOptions.IgnoreCase); Regex reg = new Regex(regex, options); if (reg.IsMatch(inputData)) { flag = true; } return flag; } public static bool IsDate(string inputData) { bool flag = false; string regex = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))"; //日期部分 RegexOptions options = ((RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline) | RegexOptions.IgnoreCase); Regex reg = new Regex(regex, options); if (reg.IsMatch(inputData)) { flag = true; } return flag; } #endregion #region 判断是否是IP地址格式 /// /// 判断是否是IP地址格式 /// /// 判断的字符串 /// public static bool CheckIP(string ip) { try { return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"); } catch { return false; } } #endregion #region 判斷日期輸入格式是否為 yyyy/mm/dd /// /// 檢核日期輸入格式,輸入格式為:yyyy/mm/dd /// /// 输入的时间型字符串 /// pass: true, no:false public static bool CheckDate(string strInput) { DateTime outDate; if (Regex.IsMatch(strInput, @"\d{4}\/\d{2}\/\d{2}")) { if (Convert.ToInt32(strInput.Substring(0, 4)) < 1753) return false; try { return DateTime.TryParse(strInput, out outDate); } catch { return false; } } return false; } #endregion #region 判断指定位置是否是空白字元 /// /// 判断指定位置是否是空白字元 /// /// 要验证的值 /// 位置 /// public static bool CheckSpaceNull(string strVal, int intPosition) { try { if (intPosition > strVal.Trim().Length) { return false; } return char.IsWhiteSpace(strVal, intPosition); } catch { return false; } } #endregion #region 判断指定位置是否是标点符号 /// /// 判断指定位置是否是标点符号 /// /// 测试的值 /// 位置 /// public static bool Checkpunctuation(string strVal, int intPosition) { try { if (intPosition > strVal.Trim().Length) { return false; } return char.IsPunctuation(strVal[intPosition]); } catch { return false; } } #endregion #region 判断輸入的字符串的格式 /// /// 判斷輸入的字符類型 /// /// 輸入的字串 /// 要驗證的類型 /// 1: 由26個英文字母組成的字串 /// 2: 正整數 /// 3: 非負整數(正整數 + 0) /// 4: 非正整數(負整數 + 0) /// 5: 負整數 /// 6: 整數 /// 7: 非負浮點數(正浮點數 + 0) /// 8: 正浮點數 /// 9: 非正浮點數(負浮點數 + 0) /// 10: 負浮點數 /// 11: 浮點數 /// 12: 由26個英文字母的大寫組成的字串 /// 13: 由26個英文字母的小寫組成的字串 /// 14: 由數位和26個英文字母組成的字串 /// 15: 由數位、26個英文字母或者下劃線組成的字串 /// 16: Email /// 17: URL /// 18: 只能輸入入中文 /// 19: 正整數並且大於0 /// 20: 由數位、26個英文字母或者短橫線組成的字串 /// 21: 完整的Url,包括http://192.168.1.2/test.aspx類型 /// /// true是驗証通過,false是驗証錯誤 public static bool CheckValidateUserInput(string strVal, int intKind) { try { string RegularExpressions = null; switch (intKind) { case 1: //由26個英文字母組成的字串 RegularExpressions = "^[A-Za-z]+$"; break; case 2: //正整數 RegularExpressions = "^[0-9]*[1-9][0-9]*$"; break; case 3: //非負整數(正整數 + 0) RegularExpressions = "^\\d+$"; break; case 4: //非正整數(負整數 + 0) RegularExpressions = "^((-\\d+)|(0+))$"; break; case 5: //負整數 RegularExpressions = "^-[0-9]*[1-9][0-9]*$"; break; case 6: //整數 RegularExpressions = "^-?\\d+$"; break; case 7: //非負浮點數(正浮點數 + 0) RegularExpressions = "^\\d+(\\.\\d+)?$"; break; case 8: //正浮點數 RegularExpressions = "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"; break; case 9: //非正浮點數(負浮點數 + 0) RegularExpressions = "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"; break; case 10: //負浮點數 RegularExpressions = "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"; break; case 11: //浮點數 RegularExpressions = "^(-?\\d+)(\\.\\d+)?$"; break; case 12: //由26個英文字母的大寫組成的字串 RegularExpressions = "^[A-Z]+$"; break; case 13: //由26個英文字母的小寫組成的字串 RegularExpressions = "^[a-z]+$"; break; case 14: //由數位和26個英文字母組成的字串 RegularExpressions = "^[A-Za-z0-9]+$"; break; case 15: //由數位、26個英文字母或者下劃線組成的字串 RegularExpressions = "^[0-9a-zA-Z_]+$"; break; case 16: //email地址 RegularExpressions = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; break; case 17: //url RegularExpressions = "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"; break; case 18: //只能輸入中文 RegularExpressions = "^[\u4e00-\u9fa5]{0,}$"; break; case 19: //正整數且大於0 RegularExpressions = @"^\d{1}[0-9]\d+$"; break; case 20: //由數位、26個英文字母或者短橫線組成的字串 RegularExpressions = "^[0-9a-zA-Z-]+$"; break; case 21: //完整的Url,包括http://192.168.1.2/test.aspx類型 RegularExpressions = "^[a-zA-z]+://[A-Za-z0-9]+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\':+!]*([^<>\"\"])*$"; break; default: break; } Match m = Regex.Match(strVal, RegularExpressions); if (m.Success) return true; else return false; } catch { return false; } } #endregion #region 判断是否包含特殊字符(SQL注入式攻击(where 语句)) /// /// 判断是否包含特殊字符(SQL注入式攻击(where 语句)) /// /// 要验证的字符串,一般为条件判断语句 /// public static bool CheckHacker(string strVal) { try { strVal = strVal.Trim().ToLower(); string strHack = "update|insert|delete|execute|exec|truncate|--|drop|create|select"; string[] strArr = strHack.Split('|'); for (int i = 0; i < strArr.Length; i++) { string strTmp = strArr[i].Trim(); if (strVal.IndexOf(strTmp) > -1) { //记录进攻击日志 return true; } } return false; } catch (Exception Err) { throw new Exception(Err.Message); } } #endregion #region 判断 DataSource /// /// 判断 DataSource /// /// 數據源 /// //public static bool CheckDataSource(IListSource lDataSource) //{ // try // { // if (null == lDataSource) return false; // return 0 < lDataSource.GetList().Count ? true : false; // } // catch // { // return false; // } //} #endregion #region 判斷字符串長度與指定長度的比較 /// /// 判斷字符串是否為指定長度 /// /// 判斷的字符串 /// 判斷長度 /// 是否檢核中文 /// public static string CheckValueLength(string strValue, int iLength) { byte[] byt = System.Text.Encoding.Default.GetBytes(strValue); int bytLength = byt.Length; string result = string.Empty; int AA = bytLength.CompareTo(iLength); switch (AA) { case 0: result = "0";//等於 break; case 1: result = "1";//大於 break; case -1: result = "-1";//小於 break; } return result; } #endregion #region 判斷字符串是否為空 /// /// 判斷字符串是否為空 /// /// 字符串 /// public static bool CheckIsNullOrEmpty(object oValue) { return null == oValue ? true : (string.IsNullOrEmpty(oValue.ToString()) ? true : false); } #endregion #region 判断两个时间的大小关系 /// /// 判断两个时间的大小关系 /// /// 開始時間 /// 結束時間 /// 相等:0, 大於:1, 小於:-1, 異常:"" public static string CheckDateDeff(string strBeginDate, string strEndDate) { DateTime BeginDate = new DateTime(); DateTime EndDate = new DateTime(); string returnValue = string.Empty; try { BeginDate = Convert.ToDateTime(strBeginDate); EndDate = Convert.ToDateTime(strEndDate); if (BeginDate.Ticks < EndDate.Ticks) returnValue = "-1"; if (BeginDate.Ticks == EndDate.Ticks) returnValue = "0"; if (BeginDate.Ticks > EndDate.Ticks) returnValue = "1"; } catch { returnValue = ""; } return returnValue; } #endregion #region 判斷圖片格式 public static bool CheckImage(string Image) { bool bl = true; if (!string.IsNullOrEmpty(Image)) { Image = Image.Substring(Image.LastIndexOf('.') + 1).ToUpper(); string ImageFormat = "JPG | GIF | BMP | PNG"; if (!(ImageFormat.IndexOf(Image) > -1)) { bl = false; } } return bl; } #endregion #region 計算字符串的長度(包括中英文) /// /// 計算字符串的長度(包括中英文) /// /// 要計算的字符串 /// 字符串的長度 public static int StrLength(string Str_Text) { if (string.IsNullOrEmpty(Str_Text)) { return 0; } else { int len = 0; for (int i = 0; i < Str_Text.Length; i++) { byte[] byte_len = Encoding.Default.GetBytes(Str_Text.Substring(i, 1)); if (byte_len.Length > 1) len += 2; //如果長度大於1,是中文,占兩個字節;+2,中文字符串的長度為原子符串長度的兩倍 else len += 1; //如果長度等於1,是英文,占一個字節;+1 } return len; } } #endregion #region 檢查字符傳的長度 /// /// 檢查字符傳的長度 /// /// /// /// public bool ChkStrLen(string Str_Check, int length) { return (Str_Check.Trim().Length <= length) ? true : false; } /// /// 欄位是否操作指定長度,中文算兩個字符 /// /// /// /// public static bool ChkEngLen(string Str_Check, int length) { int len = 0; len = StrLength(Str_Check); return (len <= length) ? true : false; } #endregion }}
0 0
- Raysoft.Framework.Validate.ValidateHelper
- Raysoft.Framework.DBUtility.AccessHelper
- Raysoft.Framework.DBUtility.OracleHelper
- Raysoft.Framework.DBUtility.SqlHelper
- Raysoft.Framework.Encrypt.EncryptHelper
- Raysoft.Framework.BindingUtility.TreeViewHelper
- Raysoft.Framework.BindingUtility.ComboBoxHelper
- Raysoft.Framework.Accounts.AccountsHelper
- Raysoft.Framework.Encrypt.PassService
- Raysoft.Framework.Xml.Xml2DatasetHelper
- Raysoft.Framework.Xml.XmlHelper
- Raysoft.Framework.Spead.SpreadHelper
- Raysoft.Framework.Financial.FinancialHelper
- Raysoft.Framework.Date_Time.DateConvertHelper
- Raysoft.Framework.DBUtility.Excel2DataTable
- Raysoft.Framework.Config.ConfigHelper
- ValidateHelper
- ajax+struts-i18n,validate framework(1)
- 为什么网站IP流量大,PV却不高呢?
- 纯CSS 实现三角形图标
- jquery mobile界面数据刷新
- hdu 2588 GCD(欧拉函数)
- 配色表
- Raysoft.Framework.Validate.ValidateHelper
- Hook原理分析
- 黑马程序员----IO操作
- 实习第二天
- hdu 1058
- java switch语法总结
- linux体系结构与内核结构图解
- gdb的使用总结
- 笔试题之sqrt函数重写 之续