Regular Expression Validator
Class Name: RegexValidator
Attribute Name: RegexValidatorAttribute
Configuration tool name: Regular Expression Validator
Description
This validator checks that the value matches the pattern specified by a regular expression.
Properties
The following table lists the regular expression validator properties. The actual property names displayed in the configuration tools are listed in the table description.
Property |
Description |
---|---|
MessageTemplate |
Message Template - This property is a string containing template tokens that the validator replaces with values as it validates the target. Typically, it describes the validation result. |
MessageTemplateResourceName |
Template Resource Name - If you do not want to use the MessageTemplate property to hard-code a message template (perhaps for internationalization), you can use a template stored in the application resources. You must also specify a MessageTemplateResourceType value. If you include both a MessageTemplate value and a MessageTemeplateResourceName value, the MessageTemplate value takes precedence. |
MessageTemplateResourceType |
Template Resource Type - The resource type for the template you want to use. If you specify a MessageTemplateResourceName value, you must specify this value. |
Name |
Name – The name to use for this validator. |
Options |
This property sets the option to use when validating a pattern. Possible values are None, IgnoreCase, Multiline, ExplicitCapture, Compiled, Singleline, ECMAScript, CultureInvariant, IgnorePatternWhiteSpace, and RightToLeft. The default is None. |
Pattern |
This property defines the regular expression. It is required. You can either enter the expression or use the Regular Expression Editor dialog box. |
PatternResourceName |
RegEx Resource Name - If you do not want to use the Pattern property to hard-code a regular expression (perhaps for internationalization), you can use a regular expression stored in the application resources. You must also specify a PatternResourceName value. If you include both a Pattern value and a PatternResourceName value, the Pattern value takes precedence. |
PatternResourceType |
RegEx Resource Type - The enumeration element type. |
PatternResourceTypeName |
RegEx Resource Type Name - The resource type for the pattern you want to use. If you specify a PatternResourceName value, you must specify this value. |
RegularExpression |
Regular Expression - The regular expression to use to validate the value. |
Tag |
This property is a user-supplied string. Typically, it is used to sort or categorize validation results. |
TypeName |
Type Name – The fully qualified name of the type configuration element. This property cannot be edited. |
Message Template Tokens
If the message template contains tokens (for example, "{0}"), the validator will replace these tokens with values when the ValidationResult is created. The tokens supported by the regular expression validator are listed in the following table.
Token |
Meaning |
---|---|
{0} |
This token represents the value of the object that is being validated. Although it can be useful to show the original value as a part of the validation message, you must be careful to avoid injection attacks by escaping any characters that can be used to attack the system that conveys the message to the user. |
{1} |
This token represents the key of the object that is being validated. When the validator is attached to a member of a type such as a property or a field, the key is set to the member name. When the validator is attached to an object, the key is null and the token is replaced by an empty string. |
{2} |
This token represents the tag that is specified on the validator instance. If no tag is supplied, the token is replaced by an empty string. |
{3} |
The regular expression pattern configured for the validator instance. |
{4} |
The regular expression options configured for the validator instance. |
Example
The following example shows how to use the regular expression validator with attributes to check that an e-mail address is formed according to the pattern given by the regular expression.
public class Person
{
[RegexValidator(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")]
public string EmailAddress
{
get
{
return emailAddress;
}
}
// ...
}
'Usage
Public Class Person
<RegexValidator("\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")> _
ReadOnly Property EmailAddress(ByVal _emailAddress As String)
Get
Return _emailAddress
End Get
End Property
' ...
End Class