Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / RegularExpressionValidator.cs / 1305376 / RegularExpressionValidator.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Web.UI.WebControls {
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text.RegularExpressions;
using System.Drawing.Design;
using System.Web;
using System.Web.Util;
///
/// Checks if the value of the associated input control matches the pattern
/// of a regular expression.
///
[
ToolboxData("<{0}:RegularExpressionValidator runat=\"server\" ErrorMessage=\"RegularExpressionValidator\">{0}:RegularExpressionValidator>")
]
public class RegularExpressionValidator : BaseValidator {
///
/// Indicates the regular expression assigned to be the validation criteria.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
Editor("System.Web.UI.Design.WebControls.RegexTypeEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)),
WebSysDescription(SR.RegularExpressionValidator_ValidationExpression)
]
public string ValidationExpression {
get {
object o = ViewState["ValidationExpression"];
return((o == null) ? String.Empty : (string)o);
}
set {
try {
Regex.IsMatch(String.Empty, value);
}
catch (Exception e) {
throw new HttpException(
SR.GetString(SR.Validator_bad_regex, value), e);
}
ViewState["ValidationExpression"] = value;
}
}
///
///
/// AddAttributesToRender method
///
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
string id = ClientID;
HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering) ? writer : null;
AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "RegularExpressionValidatorEvaluateIsValid", false);
if (ValidationExpression.Length > 0) {
AddExpandoAttribute(expandoAttributeWriter, id, "validationexpression", ValidationExpression);
}
}
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
// Always succeeds if input is empty or value was not found
string controlValue = GetControlValidationValue(ControlToValidate);
Debug.Assert(controlValue != null, "Should have already been checked");
if (controlValue == null || controlValue.Trim().Length == 0) {
return true;
}
try {
// we are looking for an exact match, not just a search hit
Match m = Regex.Match(controlValue, ValidationExpression);
return(m.Success && m.Index == 0 && m.Length == controlValue.Length);
}
catch {
Debug.Fail("Regex error should have been caught in property setter.");
return true;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Web.UI.WebControls {
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text.RegularExpressions;
using System.Drawing.Design;
using System.Web;
using System.Web.Util;
///
/// Checks if the value of the associated input control matches the pattern
/// of a regular expression.
///
[
ToolboxData("<{0}:RegularExpressionValidator runat=\"server\" ErrorMessage=\"RegularExpressionValidator\">{0}:RegularExpressionValidator>")
]
public class RegularExpressionValidator : BaseValidator {
///
/// Indicates the regular expression assigned to be the validation criteria.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
Editor("System.Web.UI.Design.WebControls.RegexTypeEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)),
WebSysDescription(SR.RegularExpressionValidator_ValidationExpression)
]
public string ValidationExpression {
get {
object o = ViewState["ValidationExpression"];
return((o == null) ? String.Empty : (string)o);
}
set {
try {
Regex.IsMatch(String.Empty, value);
}
catch (Exception e) {
throw new HttpException(
SR.GetString(SR.Validator_bad_regex, value), e);
}
ViewState["ValidationExpression"] = value;
}
}
///
///
/// AddAttributesToRender method
///
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
string id = ClientID;
HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering) ? writer : null;
AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "RegularExpressionValidatorEvaluateIsValid", false);
if (ValidationExpression.Length > 0) {
AddExpandoAttribute(expandoAttributeWriter, id, "validationexpression", ValidationExpression);
}
}
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
// Always succeeds if input is empty or value was not found
string controlValue = GetControlValidationValue(ControlToValidate);
Debug.Assert(controlValue != null, "Should have already been checked");
if (controlValue == null || controlValue.Trim().Length == 0) {
return true;
}
try {
// we are looking for an exact match, not just a search hit
Match m = Regex.Match(controlValue, ValidationExpression);
return(m.Success && m.Index == 0 && m.Length == controlValue.Length);
}
catch {
Debug.Fail("Regex error should have been caught in property setter.");
return true;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseResourcesBuildProvider.cs
- MenuRendererClassic.cs
- BaseCodePageEncoding.cs
- GZipDecoder.cs
- DataSourceXmlSubItemAttribute.cs
- UDPClient.cs
- XmlAttribute.cs
- CompoundFileStorageReference.cs
- HtmlHistory.cs
- WebDisplayNameAttribute.cs
- TemplateEditingService.cs
- WebSysDescriptionAttribute.cs
- XmlSchemaObject.cs
- HttpResponseInternalWrapper.cs
- DataErrorValidationRule.cs
- EdgeProfileValidation.cs
- HttpCookie.cs
- FrameSecurityDescriptor.cs
- UserControlAutomationPeer.cs
- StructuralType.cs
- ProxyAssemblyNotLoadedException.cs
- BinHexDecoder.cs
- ContentOnlyMessage.cs
- CultureSpecificStringDictionary.cs
- ChtmlFormAdapter.cs
- QueryCursorEventArgs.cs
- ProxySimple.cs
- StringWriter.cs
- Item.cs
- TimeoutTimer.cs
- SafeCryptContextHandle.cs
- FilterInvalidBodyAccessException.cs
- WebPartVerbCollection.cs
- Margins.cs
- TabPanel.cs
- Point3DAnimation.cs
- ImportException.cs
- HitTestWithGeometryDrawingContextWalker.cs
- Substitution.cs
- DispatcherSynchronizationContext.cs
- ReadOnlyMetadataCollection.cs
- SafeNativeMethods.cs
- _ServiceNameStore.cs
- HTTPNotFoundHandler.cs
- ControlUtil.cs
- XmlDataCollection.cs
- CrossContextChannel.cs
- ResourceManager.cs
- MetafileHeader.cs
- CharacterMetrics.cs
- ArraySubsetEnumerator.cs
- HashHelper.cs
- BrowserTree.cs
- MaterialGroup.cs
- FindCriteria.cs
- ValidationPropertyAttribute.cs
- HttpSessionStateBase.cs
- DependencyObjectCodeDomSerializer.cs
- SuppressIldasmAttribute.cs
- DataGridTextBox.cs
- FileChangesMonitor.cs
- SqlBuilder.cs
- PtsPage.cs
- InstancePersistenceException.cs
- WebPartCollection.cs
- RequiredAttributeAttribute.cs
- GeneralTransformGroup.cs
- ServiceHandle.cs
- DataGridViewImageColumn.cs
- OdbcReferenceCollection.cs
- ITextView.cs
- CookieParameter.cs
- Constants.cs
- EventListenerClientSide.cs
- SecurityRuntime.cs
- KeyInstance.cs
- Thickness.cs
- ObservableDictionary.cs
- PeerCollaboration.cs
- DependencyPropertyHelper.cs
- ServiceControllerDesigner.cs
- SmtpClient.cs
- SwitchExpression.cs
- loginstatus.cs
- HtmlInputRadioButton.cs
- MatchAllMessageFilter.cs
- FileUtil.cs
- FreezableDefaultValueFactory.cs
- AbsoluteQuery.cs
- TableCell.cs
- ClientConfigurationHost.cs
- CharStorage.cs
- DataGridViewRowPostPaintEventArgs.cs
- SymmetricKey.cs
- TrackingStringDictionary.cs
- SerialPort.cs
- TypeExtension.cs
- ConfigurationLockCollection.cs
- SqlDataSourceEnumerator.cs
- HtmlTernaryTree.cs