Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / RegularExpressionValidator.cs / 1 / 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.Security.Permissions;
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>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
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;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OrderPreservingPipeliningMergeHelper.cs
- ISFClipboardData.cs
- QueryStringParameter.cs
- XPathMessageFilterTable.cs
- XPathPatternParser.cs
- SqlServices.cs
- QuadraticEase.cs
- ProtectedUri.cs
- ServiceCredentialsElement.cs
- BitConverter.cs
- MdiWindowListStrip.cs
- EndSelectCardRequest.cs
- MultipleViewProviderWrapper.cs
- SafeNativeMethodsOther.cs
- ConstraintEnumerator.cs
- FileReservationCollection.cs
- ContactManager.cs
- HttpProtocolImporter.cs
- ParagraphResult.cs
- ScrollPatternIdentifiers.cs
- NamespaceDisplayAutomationPeer.cs
- FileReader.cs
- DropShadowEffect.cs
- shaper.cs
- HwndSourceKeyboardInputSite.cs
- InternalEnumValidator.cs
- Rect.cs
- BamlRecordWriter.cs
- MissingSatelliteAssemblyException.cs
- CompensableActivity.cs
- OutputScopeManager.cs
- EdmType.cs
- SignatureDescription.cs
- ExeContext.cs
- XmlChildEnumerator.cs
- WindowsTooltip.cs
- ProfessionalColors.cs
- HebrewNumber.cs
- ServicePointManagerElement.cs
- IISMapPath.cs
- DesignerTransaction.cs
- InputMethodStateChangeEventArgs.cs
- LineBreakRecord.cs
- dsa.cs
- WSHttpBinding.cs
- ComboBoxAutomationPeer.cs
- PageThemeParser.cs
- OutOfProcStateClientManager.cs
- ScriptReference.cs
- XmlUrlEditor.cs
- Timeline.cs
- UIElementParagraph.cs
- NativeMethods.cs
- SubpageParaClient.cs
- SchemaDeclBase.cs
- CommonProperties.cs
- ValidationError.cs
- UnsafeNativeMethods.cs
- Clipboard.cs
- XmlNavigatorFilter.cs
- SelectedGridItemChangedEvent.cs
- SettingsAttributeDictionary.cs
- EntityTypeEmitter.cs
- DataBindingExpressionBuilder.cs
- CryptoApi.cs
- VirtualizingPanel.cs
- ResourceAttributes.cs
- EventWaitHandleSecurity.cs
- DataGridHelper.cs
- EventProviderWriter.cs
- IDQuery.cs
- Int32CAMarshaler.cs
- ProcessExitedException.cs
- ProgressBarBrushConverter.cs
- StringReader.cs
- BaseDataBoundControl.cs
- TextElement.cs
- SocketAddress.cs
- PopupEventArgs.cs
- IgnoreFileBuildProvider.cs
- SourceElementsCollection.cs
- Symbol.cs
- Buffer.cs
- URLAttribute.cs
- XmlLoader.cs
- ListSortDescription.cs
- Stack.cs
- TargetInvocationException.cs
- BatchWriter.cs
- XPathBinder.cs
- TabItemAutomationPeer.cs
- MergeFilterQuery.cs
- DataGridViewCellEventArgs.cs
- NotCondition.cs
- SafeReversePInvokeHandle.cs
- FilterQuery.cs
- Animatable.cs
- FixedTextView.cs
- OdbcException.cs
- Geometry.cs