#if FRAMEWORK20
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Text.RegularExpressions;
namespace DevComponents.DotNetBar.Validator
{
///
/// Represents the regular expression validator used with SuperValidator control.
///
public class RegularExpressionValidator : ValidatorBase
{
#region Implementation
///
/// Initializes a new instance of the RegularExpressionValidator class.
///
public RegularExpressionValidator()
{
}
///
/// Initializes a new instance of the RegularExpressionValidator class.
///
///
public RegularExpressionValidator(string errorMessage, string validationExpression)
{
_ValidationExpression = validationExpression;
this.ErrorMessage = errorMessage;
}
///
/// Initializes a new instance of the RegularExpressionValidator class.
///
///
public RegularExpressionValidator(string errorMessage, string validationExpression, bool emptyValueIsValid)
{
_ValidationExpression = validationExpression;
this.ErrorMessage = errorMessage;
this.EmptyValueIsValid = emptyValueIsValid;
}
///
/// Initializes a new instance of the RegularExpressionValidator class.
///
///
public RegularExpressionValidator(string errorMessage, string validationExpression, string optionalValidationGroup, bool emptyValueIsValid)
{
_ValidationExpression = validationExpression;
this.ErrorMessage = errorMessage;
this.OptionalValidationGroup = optionalValidationGroup;
}
private string _ValidationExpression = "";
///
/// Gets or sets regular expression used to validate controls value.
///
[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;
///
/// Gets or sets whether empty value is considered valid value by the validator. Default value is false.
///
[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