正则表达式都在程序里,呵呵……

源码——WinForm窗体一次性数据合法性验证


源码——WinForm窗体一次性数据合法性验证using System;
源码——WinForm窗体一次性数据合法性验证
using System.Data;
源码——WinForm窗体一次性数据合法性验证
using System.Windows.Forms;
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
namespace HEWin.Sys
{

源码——WinForm窗体一次性数据合法性验证    
/// 功能:验证DataTable、DataRow和DataForm数据的合法性
源码——WinForm窗体一次性数据合法性验证    
/// 原理:使用DataColoum的扩展属性和窗口控件的Tag属性,存放数据的规范,调用本类来验证输入数据的合法性.
源码——WinForm窗体一次性数据合法性验证    
/// </summary>
源码——WinForm窗体一次性数据合法性验证    public class sysValidate: IDisposable
{
源码——WinForm窗体一次性数据合法性验证        
private HEWin.Sys.sysErrors _Errors=new sysErrors();
源码——WinForm窗体一次性数据合法性验证        
private System.Windows.Forms.Control _FocusControl;
源码——WinForm窗体一次性数据合法性验证        
static  private string UnString=@"\\'";
源码——WinForm窗体一次性数据合法性验证        
static  private System.Text.RegularExpressions.Regex  _CHAR=new System.Text.RegularExpressions.Regex("["+UnString+"]");
源码——WinForm窗体一次性数据合法性验证        
源码——WinForm窗体一次性数据合法性验证        
public     void  Dispose()
{
源码——WinForm窗体一次性数据合法性验证         _Errors.Dispose();
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证        }

源码——WinForm窗体一次性数据合法性验证        
public      sysValidate()   
{
源码——WinForm窗体一次性数据合法性验证        }


源码——WinForm窗体一次性数据合法性验证        
/// 功能:判断一个窗体上所有控件的数据合法性
源码——WinForm窗体一次性数据合法性验证        
/// 原理:根据控件的Tag属性存放的数据规范来验证数据的合法性,
源码——WinForm窗体一次性数据合法性验证        
///      将错误返回到错误对象集合里.
源码——WinForm窗体一次性数据合法性验证        
/// </summary>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="frm">窗口的引用</param>
源码——WinForm窗体一次性数据合法性验证        
/// <returns>错误集合对象</returns>
源码——WinForm窗体一次性数据合法性验证        public Sys.sysErrors validateForm(System.Windows.Forms.Form frm)
{
源码——WinForm窗体一次性数据合法性验证            
this._FocusControl=null;
源码——WinForm窗体一次性数据合法性验证            
if(_Errors!=null) _Errors.Dispose();
源码——WinForm窗体一次性数据合法性验证            _Errors    
=new HEWin.Sys.sysErrors();
源码——WinForm窗体一次性数据合法性验证            
foreach(System.Windows.Forms.Control ctl in frm.Controls)
源码——WinForm窗体一次性数据合法性验证                _Errors.MergeErrors(validateControl(ctl));
源码——WinForm窗体一次性数据合法性验证            
if(this._FocusControl!=null)
源码——WinForm窗体一次性数据合法性验证                
this._FocusControl.Focus();
源码——WinForm窗体一次性数据合法性验证            
return _Errors;
源码——WinForm窗体一次性数据合法性验证        }

源码——WinForm窗体一次性数据合法性验证

源码——WinForm窗体一次性数据合法性验证        
/// 功能:判断一个窗体上可见控件的数据合法性
源码——WinForm窗体一次性数据合法性验证        
/// 原理:根据控件的Tag属性存放的数据规范来验证数据的合法性,
源码——WinForm窗体一次性数据合法性验证        
///      将错误返回到错误对象集合里.
源码——WinForm窗体一次性数据合法性验证        
/// </summary>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="frm">窗口的引用</param>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="Visible">true:表示对可见控件进行判断</param>
源码——WinForm窗体一次性数据合法性验证        
/// <returns>错误集合对象</returns>
源码——WinForm窗体一次性数据合法性验证        public Sys.sysErrors validateForm(System.Windows.Forms.Form frm,bool Enabled)
{
源码——WinForm窗体一次性数据合法性验证            
this._FocusControl=null;
源码——WinForm窗体一次性数据合法性验证            
if(_Errors!=null) _Errors.Dispose();
源码——WinForm窗体一次性数据合法性验证            _Errors    
=new HEWin.Sys.sysErrors();
源码——WinForm窗体一次性数据合法性验证            
foreach(System.Windows.Forms.Control ctl in frm.Controls)
源码——WinForm窗体一次性数据合法性验证                _Errors.MergeErrors(validateControl(ctl,Enabled));
源码——WinForm窗体一次性数据合法性验证            
if(this._FocusControl!=null)
源码——WinForm窗体一次性数据合法性验证                
this._FocusControl.Focus();
源码——WinForm窗体一次性数据合法性验证            
return _Errors;
源码——WinForm窗体一次性数据合法性验证        }


源码——WinForm窗体一次性数据合法性验证        
/// 功能:判断一个控件的数据合法性
源码——WinForm窗体一次性数据合法性验证        
/// 原理:根据控件的Tag属性存放的数据规范来验证数据的合法性,
源码——WinForm窗体一次性数据合法性验证        
///      将错误返回到错误对象集合里.
源码——WinForm窗体一次性数据合法性验证        
/// </summary>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="ctl">控件的引用</param>
源码——WinForm窗体一次性数据合法性验证        
/// <returns>错误集合对象</returns>
源码——WinForm窗体一次性数据合法性验证        public Sys.sysErrors validateControl(System.Windows.Forms.Control ctl)
{
源码——WinForm窗体一次性数据合法性验证            HEWin.Sys.sysErrors errs    
= new HEWin.Sys.sysErrors();
源码——WinForm窗体一次性数据合法性验证            
源码——WinForm窗体一次性数据合法性验证            
switch (ctl.GetType().ToString())
{
源码——WinForm窗体一次性数据合法性验证                
case "System.Windows.Forms.GroupBox" :
源码——WinForm窗体一次性数据合法性验证                    
foreach(System.Windows.Forms.Control ctlInner in ctl.Controls)
源码——WinForm窗体一次性数据合法性验证                        errs.MergeErrors(validateControl(ctlInner));        
//递归
源码——WinForm窗体一次性数据合法性验证
                    break;
源码——WinForm窗体一次性数据合法性验证                
case "System.Windows.Forms.Panel" :
源码——WinForm窗体一次性数据合法性验证                    
foreach(System.Windows.Forms.Control ctlInner in ctl.Controls)
源码——WinForm窗体一次性数据合法性验证                        errs.MergeErrors(validateControl(ctlInner));        
//递归
源码——WinForm窗体一次性数据合法性验证
                    break;
源码——WinForm窗体一次性数据合法性验证                
default :
源码——WinForm窗体一次性数据合法性验证                    Sys.sysError err 
= validate(ctl);
源码——WinForm窗体一次性数据合法性验证                    
if (err != null)
{
源码——WinForm窗体一次性数据合法性验证                        
if (this._FocusControl==null && ctl.Visible)
源码——WinForm窗体一次性数据合法性验证                            
this._FocusControl=ctl;
源码——WinForm窗体一次性数据合法性验证                        
if(this._FocusControl!=null && ctl.TabIndex<this._FocusControl.TabIndex && ctl.Visible)
源码——WinForm窗体一次性数据合法性验证                            
this._FocusControl=ctl;
源码——WinForm窗体一次性数据合法性验证                        errs.AddError(err);
源码——WinForm窗体一次性数据合法性验证                    }

源码——WinForm窗体一次性数据合法性验证                    
break;
源码——WinForm窗体一次性数据合法性验证            }

源码——WinForm窗体一次性数据合法性验证            
return errs;
源码——WinForm窗体一次性数据合法性验证        }

源码——WinForm窗体一次性数据合法性验证    

源码——WinForm窗体一次性数据合法性验证        
/// 功能:判断一个可见控件的数据合法性
源码——WinForm窗体一次性数据合法性验证        
/// 原理:根据控件的Tag属性存放的数据规范来验证数据的合法性,
源码——WinForm窗体一次性数据合法性验证        
///      将错误返回到错误对象集合里.
源码——WinForm窗体一次性数据合法性验证        
/// </summary>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="ctl">控件的引用</param>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="Visible">true:表示对可见控件进行判断</param>
源码——WinForm窗体一次性数据合法性验证        
/// <returns>错误集合对象</returns>
源码——WinForm窗体一次性数据合法性验证        public Sys.sysErrors validateControl(System.Windows.Forms.Control ctl,bool Enabled)
{
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证            HEWin.Sys.sysErrors errs    
= new HEWin.Sys.sysErrors();
源码——WinForm窗体一次性数据合法性验证            
源码——WinForm窗体一次性数据合法性验证            
switch (ctl.GetType().ToString())
{
源码——WinForm窗体一次性数据合法性验证                
case "System.Windows.Forms.GroupBox" :
源码——WinForm窗体一次性数据合法性验证                    
foreach(System.Windows.Forms.Control ctlInner in ctl.Controls)
源码——WinForm窗体一次性数据合法性验证                        errs.MergeErrors(validateControl(ctlInner,Enabled));        
//递归
源码——WinForm窗体一次性数据合法性验证
                    break;
源码——WinForm窗体一次性数据合法性验证                
case "System.Windows.Forms.Panel" :
源码——WinForm窗体一次性数据合法性验证                    
foreach(System.Windows.Forms.Control ctlInner in ctl.Controls)
源码——WinForm窗体一次性数据合法性验证                        errs.MergeErrors(validateControl(ctlInner,Enabled));        
//递归
源码——WinForm窗体一次性数据合法性验证
                    break;
源码——WinForm窗体一次性数据合法性验证                
default :
源码——WinForm窗体一次性数据合法性验证                    
if (ctl.Visible!=Enabled)  
源码——WinForm窗体一次性数据合法性验证                        
return errs;
源码——WinForm窗体一次性数据合法性验证                    
源码——WinForm窗体一次性数据合法性验证                    
if(ctl is System.Windows.Forms.TextBox&&( ((TextBox)ctl).ReadOnly==Enabled))
源码——WinForm窗体一次性数据合法性验证                        
return errs;
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                    Sys.sysError err 
= validate(ctl);
源码——WinForm窗体一次性数据合法性验证                    
if (err != null)
{
源码——WinForm窗体一次性数据合法性验证                        
if (this._FocusControl==null && ctl.Visible)
源码——WinForm窗体一次性数据合法性验证                            
this._FocusControl=ctl;
源码——WinForm窗体一次性数据合法性验证                        
if(this._FocusControl!=null && ctl.TabIndex<this._FocusControl.TabIndex && ctl.Visible)
源码——WinForm窗体一次性数据合法性验证                            
this._FocusControl=ctl;
源码——WinForm窗体一次性数据合法性验证                        errs.AddError(err);
源码——WinForm窗体一次性数据合法性验证                    }

源码——WinForm窗体一次性数据合法性验证                    
break;
源码——WinForm窗体一次性数据合法性验证            }

源码——WinForm窗体一次性数据合法性验证            
return errs;
源码——WinForm窗体一次性数据合法性验证        }

源码——WinForm窗体一次性数据合法性验证    

源码——WinForm窗体一次性数据合法性验证        
/// 功能:判断一个控件数据的合法性
源码——WinForm窗体一次性数据合法性验证        
/// 原理:根据控件的Tag属性存放的数据规范来验证数据的合法性,所有验证控件的函数都是调用此函数来执行验证的.
源码——WinForm窗体一次性数据合法性验证        
/// </summary>
源码——WinForm窗体一次性数据合法性验证        
/// <param name="ctl">控件的引用</param>
源码——WinForm窗体一次性数据合法性验证        
/// <returns>返回错误集合对象</returns>
源码——WinForm窗体一次性数据合法性验证        private Sys.sysError validate(System.Windows.Forms.Control ctl)
{
源码——WinForm窗体一次性数据合法性验证            
源码——WinForm窗体一次性数据合法性验证            
源码——WinForm窗体一次性数据合法性验证            
if (ctl.Tag != null && ctl.Tag.ToString() != "0;")
{
源码——WinForm窗体一次性数据合法性验证                
string strTag = ctl.Tag.ToString();
源码——WinForm窗体一次性数据合法性验证                
string strText = ctl.Text;
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                
if (strTag.IndexOf(";"== -1)
源码——WinForm窗体一次性数据合法性验证                    
return null;
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                
string strVid = "";
源码——WinForm窗体一次性数据合法性验证                System.Text.RegularExpressions.Regex regex;
源码——WinForm窗体一次性数据合法性验证                
if (strTag.Length >= 1)
源码——WinForm窗体一次性数据合法性验证                    strVid 
= strTag.Substring(0,1);
源码——WinForm窗体一次性数据合法性验证                
else
源码——WinForm窗体一次性数据合法性验证                    
return null;
源码——WinForm窗体一次性数据合法性验证                
string strVname = "";
源码——WinForm窗体一次性数据合法性验证                
string strVmaxmin = "";
源码——WinForm窗体一次性数据合法性验证                
string strFill = "0";
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                Sys.sysError _Error 
= new Sys.sysError();
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                
switch (strVid)
{
源码——WinForm窗体一次性数据合法性验证                    
case "1" :
源码——WinForm窗体一次性数据合法性验证                        
try
{
源码——WinForm窗体一次性数据合法性验证                            regex 
= new System.Text.RegularExpressions.Regex
源码——WinForm窗体一次性数据合法性验证                                (
@"^\d+;(?<vname>[\u4E00-\u9FA0]+);(?<vfill>\d+);(?<vmaxmin>\d+,\d+);(?<vfraction>\d+);");    //匹配数字验证的正则表达式
源码——WinForm窗体一次性数据合法性验证

源码——WinForm窗体一次性数据合法性验证                            strVname 
= regex.Match(strTag).Result("${vname}");
源码——WinForm窗体一次性数据合法性验证                            strFill 
= regex.Match(strTag).Result("${vfill}");
源码——WinForm窗体一次性数据合法性验证                            strVmaxmin 
= regex.Match(strTag).Result("${vmaxmin}");
源码——WinForm窗体一次性数据合法性验证                            
int intFraction = Convert.ToInt32(regex.Match(strTag).Result("${vfraction}"));
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
if (strFill == "1")
{
源码——WinForm窗体一次性数据合法性验证                                
if (strText == "")                                            //是否必填
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new HEWin.Sys.sysError(-1,strVname,1001,"不能为空!");                // D(1) = B(00000001)
源码——WinForm窗体一次性数据合法性验证
                                    return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                            
else
{
源码——WinForm窗体一次性数据合法性验证                                
if (strText == "")
源码——WinForm窗体一次性数据合法性验证                                    
return null;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            regex 
= new System.Text.RegularExpressions.Regex(@"^\d*\.?\d+$");        //是否有非法字符(此处必须全部为数字)
源码——WinForm窗体一次性数据合法性验证
                            if (strText != ""&&(!regex.IsMatch(strText)||strText.Substring(0,1)=="."))
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new HEWin.Sys.sysError(-1,strVname,1002,"必须为数字!");                                        // D(16) = B(00010000)
源码——WinForm窗体一次性数据合法性验证
                                return _Error;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
try
{
源码——WinForm窗体一次性数据合法性验证                                System.Decimal test
=System.Convert.ToDecimal(strText);
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                            
catch
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new HEWin.Sys.sysError(-1,strVname,1002,"必须为数字!");                                        // D(16) = B(00010000)
源码——WinForm窗体一次性数据合法性验证
                                return _Error    ;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                        
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            regex 
= new System.Text.RegularExpressions.Regex(@"^(?<vmin>\d+),(?<vmax>\d+)",
源码——WinForm窗体一次性数据合法性验证                                System.Text.RegularExpressions.RegexOptions.Compiled);
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
//要判断非常大的数据吗??
源码——WinForm窗体一次性数据合法性验证

源码——WinForm窗体一次性数据合法性验证                            
long lngMax = 0;
源码——WinForm窗体一次性数据合法性验证                            
long lngMin = 0;
源码——WinForm窗体一次性数据合法性验证                        
源码——WinForm窗体一次性数据合法性验证                            
try
{
源码——WinForm窗体一次性数据合法性验证                                lngMax 
= Convert.ToInt64(regex.Match(strVmaxmin).Result("${vmax}"));
源码——WinForm窗体一次性数据合法性验证                                lngMin 
= Convert.ToInt64(regex.Match(strVmaxmin).Result("${vmin}"));
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                                
if (strText == "0")
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1003,"不能为0!");
源码——WinForm窗体一次性数据合法性验证                                    
return _Error;                        //非0判断
源码——WinForm窗体一次性数据合法性验证
                                }
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                                
if (System.Math.Ceiling(Convert.ToDouble(strText)) > lngMax)        //最大值判断
源码——WinForm窗体一次性数据合法性验证
                                    if (System.Math.Floor(Convert.ToDouble(strText)) != lngMax)
{
源码——WinForm窗体一次性数据合法性验证                                        _Error 
= new sysError(-1,strVname,1004,"最大值超出范围!");                                                // D(2) = B(00000010)
源码——WinForm窗体一次性数据合法性验证
                                        return _Error;
源码——WinForm窗体一次性数据合法性验证                                    }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                                
if (System.Math.Ceiling(Convert.ToDouble(strText)) < lngMin)                            //最小值判断
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1005,"最小值超出范围!");                                                // D(4) = B(00000100)
源码——WinForm窗体一次性数据合法性验证
                                    return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                            
catch
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new sysError(-1,strVname,1006,"所填数据过大!");                                            //所填数据过大
源码——WinForm窗体一次性数据合法性验证
                                return _Error;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
if (strText.IndexOf("."!= -1)
{
源码——WinForm窗体一次性数据合法性验证                                regex 
= new System.Text.RegularExpressions.Regex(@"^\d+\.(?<vfraction>\d+$)");
源码——WinForm窗体一次性数据合法性验证                                
if (regex.Match(strText).Result("${vfraction}").Length > intFraction)    //小数位数判断
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1007,"小数位数过长!");                                                        // D(8) = B(00001000)                        
源码——WinForm窗体一次性数据合法性验证
                                    return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                                
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                        }

源码——WinForm窗体一次性数据合法性验证                        
catch
{
源码——WinForm窗体一次性数据合法性验证                            _Error 
= new sysError(-1,strVname,1499,"判断条件出错!");                //判断条件出错
源码——WinForm窗体一次性数据合法性验证
                            return _Error;
源码——WinForm窗体一次性数据合法性验证                        }

源码——WinForm窗体一次性数据合法性验证                        
break;
源码——WinForm窗体一次性数据合法性验证                    
case "2" :
源码——WinForm窗体一次性数据合法性验证                        
try
{
源码——WinForm窗体一次性数据合法性验证                            
//检查控件的Tag属性设置是否正确
源码——WinForm窗体一次性数据合法性验证
                            regex = new System.Text.RegularExpressions.Regex
源码——WinForm窗体一次性数据合法性验证                                (
@"^\d+;(?<vname>[\u4E00-\u9FA0]+);(?<vfill>\d+);(?<vmaxmin>\d+,\d+);");
源码——WinForm窗体一次性数据合法性验证                        
源码——WinForm窗体一次性数据合法性验证                            strVname 
= regex.Match(strTag).Result("${vname}");
源码——WinForm窗体一次性数据合法性验证                            strFill 
= regex.Match(strTag).Result("${vfill}");
源码——WinForm窗体一次性数据合法性验证                            strVmaxmin 
= regex.Match(strTag).Result("${vmaxmin}");
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
//判断是否必填
源码——WinForm窗体一次性数据合法性验证
                            if (strFill == "1")
{
源码——WinForm窗体一次性数据合法性验证                                
if (strText == "")
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1001,"不能为空!");
源码——WinForm窗体一次性数据合法性验证                                    
return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
//判断是否有非法字符
源码——WinForm窗体一次性数据合法性验证
                            if (_CHAR.IsMatch(strText) && strText != "")    
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new sysError(-1,strVname,1008,"存在“"+UnString+"“等非法字符!");
源码——WinForm窗体一次性数据合法性验证                                
return _Error;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
if (_CHAR.IsMatch(strText) && strText != "")    
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new sysError(-1,strVname,1008,"存在“"+UnString+"”等非法字符!");
源码——WinForm窗体一次性数据合法性验证                                
return _Error;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
//判断字符最大最小长度
源码——WinForm窗体一次性数据合法性验证                            
//HEWin.Sys.sysFunction.MsgWarning(strVmaxmin);
源码——WinForm窗体一次性数据合法性验证
                            regex = new System.Text.RegularExpressions.Regex(@"^(?<vmin>\d+),(?<vmax>\d+)");
源码——WinForm窗体一次性数据合法性验证                            
int intMax = Convert.ToInt32(regex.Match(strVmaxmin).Result("${vmax}"));
源码——WinForm窗体一次性数据合法性验证                            
int intMin = Convert.ToInt32(regex.Match(strVmaxmin).Result("${vmin}"));
源码——WinForm窗体一次性数据合法性验证                            
//最大字符长度
源码——WinForm窗体一次性数据合法性验证
                            if (strText.Length > intMax)
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new sysError(-1,strVname,1009,"所填字符太长!");
源码——WinForm窗体一次性数据合法性验证                                
return _Error;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                                
//最小长度
源码——WinForm窗体一次性数据合法性验证
                            else if (strText.Length < intMin)
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new sysError(-1,strVname,1010,"所填字符太短!");
源码——WinForm窗体一次性数据合法性验证                                
return _Error;                                                                
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                        }

源码——WinForm窗体一次性数据合法性验证                        
catch
{
源码——WinForm窗体一次性数据合法性验证                            _Error 
= new sysError(-1,strVname,1499,"判断条件出错!");                //判断条件出错
源码——WinForm窗体一次性数据合法性验证
                            return _Error;
源码——WinForm窗体一次性数据合法性验证                        }

源码——WinForm窗体一次性数据合法性验证                                        
源码——WinForm窗体一次性数据合法性验证                        
break;
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                    
case "3" :
源码——WinForm窗体一次性数据合法性验证                        
try
{
源码——WinForm窗体一次性数据合法性验证                            regex 
= new System.Text.RegularExpressions.Regex
源码——WinForm窗体一次性数据合法性验证                                (
@"^\d+;(?<vname>[\u4E00-\u9FA0]+);(?<vfill>\d+);(?<vmaxmin>\d{4}\-\d{1,2}\-\d{1,2},\d{4}\-\d{1,2}\-\d{1,2});",
源码——WinForm窗体一次性数据合法性验证                                System.Text.RegularExpressions.RegexOptions.Compiled);
源码——WinForm窗体一次性数据合法性验证                            
//DateTimePicker控件
源码——WinForm窗体一次性数据合法性验证
                            if (ctl.GetType().ToString() == "System.Windows.Forms.DateTimePicker")
源码——WinForm窗体一次性数据合法性验证                                strText 
= ((System.Windows.Forms.DateTimePicker)ctl).Value.ToString("yyyy-MM-dd");
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            strVname 
= regex.Match(strTag).Result("${vname}");
源码——WinForm窗体一次性数据合法性验证                            strFill 
= regex.Match(strTag).Result("${vfill}");
源码——WinForm窗体一次性数据合法性验证                            strVmaxmin 
= regex.Match(strTag).Result("${vmaxmin}");
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
//是否必填
源码——WinForm窗体一次性数据合法性验证
                            if (strFill == "1")
{
源码——WinForm窗体一次性数据合法性验证                                
if (strText == "")
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1001,"不能为空!");                //判断条件出错
源码——WinForm窗体一次性数据合法性验证
                                    return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                            
//最大最小日期
源码——WinForm窗体一次性数据合法性验证
                            regex = new System.Text.RegularExpressions.Regex(@"^(?<vmin>\d{4}\-\d{1,2}\-\d{1,2}),(?<vmax>\d{4}\-\d{1,2}\-\d{1,2})");
源码——WinForm窗体一次性数据合法性验证                            
//最大日期
源码——WinForm窗体一次性数据合法性验证

源码——WinForm窗体一次性数据合法性验证                            
try
{
源码——WinForm窗体一次性数据合法性验证                                
if (Convert.ToDateTime(strText) > Convert.ToDateTime(regex.Match(strVmaxmin).Result("${vmax}")))
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1011,"所填日期太大!");                
源码——WinForm窗体一次性数据合法性验证                                    
return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                                    
//最小日期
源码——WinForm窗体一次性数据合法性验证
                                else if (Convert.ToDateTime(strText) < Convert.ToDateTime(regex.Match(strVmaxmin).Result("${vmin}")))
{
源码——WinForm窗体一次性数据合法性验证                                    _Error 
= new sysError(-1,strVname,1011,"所填日期太小!");    
源码——WinForm窗体一次性数据合法性验证                                    
return _Error;
源码——WinForm窗体一次性数据合法性验证                                }

源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证                            
catch
{
源码——WinForm窗体一次性数据合法性验证                                _Error 
= new sysError(-1,strVname,1012,"不是类似“yyyy-MM-dd“格式的日期!");
源码——WinForm窗体一次性数据合法性验证                                
return _Error;
源码——WinForm窗体一次性数据合法性验证                            }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                        }

源码——WinForm窗体一次性数据合法性验证                        
catch
{
源码——WinForm窗体一次性数据合法性验证                            _Error 
= new sysError(-1,strVname,1499,"判断条件出错!");                //判断条件出错
源码——WinForm窗体一次性数据合法性验证
                            return _Error;
源码——WinForm窗体一次性数据合法性验证                        }

源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                        
break;
源码——WinForm窗体一次性数据合法性验证
源码——WinForm窗体一次性数据合法性验证                    
default :
源码——WinForm窗体一次性数据合法性验证                        _Error 
= new sysError(-1,ctl.Name,1498,"Tag判断条件无法解析!");
源码——WinForm窗体一次性数据合法性验证                        
return _Error;
源码——WinForm窗体一次性数据合法性验证                }
            
源码——WinForm窗体一次性数据合法性验证            }

源码——WinForm窗体一次性数据合法性验证            
源码——WinForm窗体一次性数据合法性验证            
return null;
源码——WinForm窗体一次性数据合法性验证        }

源码——WinForm窗体一次性数据合法性验证    }

源码——WinForm窗体一次性数据合法性验证}

源码——WinForm窗体一次性数据合法性验证

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
相关资源
相似解决方案