113 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#if FRAMEWORK20
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Text.RegularExpressions;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Validator
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Represents the regular expression validator used with SuperValidator control.
 | 
						|
    /// </summary>
 | 
						|
    public class RegularExpressionValidator : ValidatorBase
 | 
						|
    {
 | 
						|
        #region Implementation
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the RegularExpressionValidator class.
 | 
						|
        /// </summary>
 | 
						|
        public RegularExpressionValidator()
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the RegularExpressionValidator class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="validationExpression"></param>
 | 
						|
        public RegularExpressionValidator(string errorMessage, string validationExpression)
 | 
						|
        {
 | 
						|
            _ValidationExpression = validationExpression;
 | 
						|
            this.ErrorMessage = errorMessage;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the RegularExpressionValidator class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="validationExpression"></param>
 | 
						|
        public RegularExpressionValidator(string errorMessage, string validationExpression, bool emptyValueIsValid)
 | 
						|
        {
 | 
						|
            _ValidationExpression = validationExpression;
 | 
						|
            this.ErrorMessage = errorMessage;
 | 
						|
            this.EmptyValueIsValid = emptyValueIsValid;
 | 
						|
        }
 | 
						|
 | 
						|
         /// <summary>
 | 
						|
        /// Initializes a new instance of the RegularExpressionValidator class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="validationExpression"></param>
 | 
						|
        public RegularExpressionValidator(string errorMessage, string validationExpression, string optionalValidationGroup, bool emptyValueIsValid)
 | 
						|
        {
 | 
						|
            _ValidationExpression = validationExpression;
 | 
						|
            this.ErrorMessage = errorMessage;
 | 
						|
            this.OptionalValidationGroup = optionalValidationGroup;
 | 
						|
        }
 | 
						|
 | 
						|
        private string _ValidationExpression = "";
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets regular expression used to validate controls value.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(""), Category("Behavior"), Description("Indicates regular expression used to validate controls value."), Editor("DevComponents.DotNetBar.Design.ValidationExpressionEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
        public string ValidationExpression
 | 
						|
        {
 | 
						|
            get { return _ValidationExpression; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _ValidationExpression = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private bool _EmptyValueIsValid = false;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether empty value is considered valid value by the validator. Default value is false.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(false), Category("Behavior"), Description("Indicates whether empty value is considered valid value by the validator")]
 | 
						|
        public bool EmptyValueIsValid
 | 
						|
        {
 | 
						|
            get { return _EmptyValueIsValid; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _EmptyValueIsValid = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        
 | 
						|
 | 
						|
        public override bool Validate(System.Windows.Forms.Control input)
 | 
						|
        {
 | 
						|
            if (string.IsNullOrEmpty(_ValidationExpression))
 | 
						|
            {
 | 
						|
                this.LastValidationResult = true;
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
            object value = GetControlValue(input);
 | 
						|
            string textValue = "";
 | 
						|
 | 
						|
            if (value != null)
 | 
						|
            {
 | 
						|
                textValue = value.ToString();
 | 
						|
            }
 | 
						|
 | 
						|
            if (_EmptyValueIsValid && string.IsNullOrEmpty(textValue))
 | 
						|
            {
 | 
						|
                this.LastValidationResult = true;
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
 | 
						|
            Regex regularExpression = new Regex(_ValidationExpression);
 | 
						|
 | 
						|
            this.LastValidationResult = regularExpression.IsMatch(textValue);
 | 
						|
            return LastValidationResult;
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 | 
						|
#endif |