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
- Double.cs
- SafeNativeMethodsMilCoreApi.cs
- HttpListenerResponse.cs
- ZipIOBlockManager.cs
- FileDialog_Vista_Interop.cs
- XmlStringTable.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DateTimeFormatInfo.cs
- DataReaderContainer.cs
- UriWriter.cs
- InvokeGenerator.cs
- FileRecordSequence.cs
- IndexedString.cs
- VirtualDirectoryMapping.cs
- EmptyReadOnlyDictionaryInternal.cs
- DataGridViewElement.cs
- TemplateControlBuildProvider.cs
- X509AsymmetricSecurityKey.cs
- OdbcException.cs
- PasswordBox.cs
- RTLAwareMessageBox.cs
- RemoteWebConfigurationHostStream.cs
- QilInvoke.cs
- SqlDataSourceCustomCommandEditor.cs
- NonNullItemCollection.cs
- CheckPair.cs
- SelectionRange.cs
- MorphHelper.cs
- LinkLabelLinkClickedEvent.cs
- CapabilitiesState.cs
- ApplicationManager.cs
- Table.cs
- MarkedHighlightComponent.cs
- BaseEntityWrapper.cs
- GC.cs
- activationcontext.cs
- TimeoutValidationAttribute.cs
- ImageIndexConverter.cs
- GridViewColumn.cs
- Focus.cs
- TokenizerHelper.cs
- LicenseException.cs
- CodeArrayCreateExpression.cs
- SpotLight.cs
- AsyncStreamReader.cs
- SQLResource.cs
- HttpModule.cs
- CalendarDesigner.cs
- DataBoundControlActionList.cs
- ListViewGroupConverter.cs
- DesignerSerializationOptionsAttribute.cs
- ComponentChangingEvent.cs
- CommentEmitter.cs
- PropertyItemInternal.cs
- AttributeCollection.cs
- RelationalExpressions.cs
- MonthChangedEventArgs.cs
- ParserOptions.cs
- UserControl.cs
- VisualBrush.cs
- UserControl.cs
- SpeechRecognizer.cs
- DataMember.cs
- RowToParametersTransformer.cs
- DeploymentExceptionMapper.cs
- SocketAddress.cs
- ClientRuntimeConfig.cs
- GregorianCalendarHelper.cs
- CharacterBuffer.cs
- MemberMaps.cs
- DynamicQueryStringParameter.cs
- ExtensionSimplifierMarkupObject.cs
- DBCSCodePageEncoding.cs
- StringKeyFrameCollection.cs
- DesignerValidatorAdapter.cs
- PrintDocument.cs
- FormViewInsertedEventArgs.cs
- BufferedGraphicsManager.cs
- RadioButtonList.cs
- ComponentRenameEvent.cs
- CssTextWriter.cs
- TextTreeText.cs
- DetailsViewUpdatedEventArgs.cs
- FixedDocument.cs
- BindingOperations.cs
- AlternateView.cs
- ProcessingInstructionAction.cs
- SmtpTransport.cs
- AsyncInvokeOperation.cs
- UnmanagedMemoryStream.cs
- EdmToObjectNamespaceMap.cs
- ConcurrentQueue.cs
- LineSegment.cs
- DbBuffer.cs
- HostingEnvironmentException.cs
- SpStreamWrapper.cs
- MatrixTransform3D.cs
- CustomTypeDescriptor.cs
- WebDisplayNameAttribute.cs
- UnsafeNativeMethodsCLR.cs