Validating Expressions

What if you need to verify that text someone has entered is a correctly formatted Canadian postal code? What if you need a user to enter a valid e-mail address? Although you could write the necessary code to validate these types of expressions (and many ASP developers did just that), ASP.NET makes it easy to validate complex expressions.

Using the power of regular expressions, a widely accepted standard for generalizing pattern matching, ASP.NET provides the RegularExpressionValidator control. This control allows you to specify a regular expression to match against text entered into a control. (Regular expressions are templates for matching text—the DOS wildcards, * and ?, allow you to create very simple regular expression-like templates, although real regular expressions are far more complex.)

Although coverage of creating your own regular expressions is beyond the scope of this book (it's a huge topic, with reference books all its own), Visual Studio .NET helps you create common regular expressions by providing a list of the ones you're most likely to need, including U.S., French, German, and Japanese phone numbers and postal codes, Internet e-mail addresses, and Internet URLs.

As an example, the regular expression for U.S. ZIP codes looks like this (remember that U.S. ZIP codes can be either five digits, such as 98765, or five digits followed by a hyphen and four more digits, such as 98765-1234. No other formats are allowed):

d{5}(-d{4})?

Here's an explanation of this example, taken apart bit by bit:

  • The d{5} part of the expression matches against exactly five numeric digits.

  • The (-d{4})? part of the expression allows for the optional four digits.

  • The ()? part of the expression creates an optional group—either the whole group appears or it doesn't. The parentheses group the expressions, and the question mark indicates that the group is optional.

  • The hyphen (-) in this expression allows a hyphen as the first character in the group.

  • The d{4} part of the expression matches against four numeric digits.

To illustrate the use of this control, let's assume that on the sample page, EmpMaint.aspx, you need to restrict data entry in the Home Phone field to ensure valid U.S. phone numbers. You need to restrict data entry in the Zip Code field as well. Follow these steps to add RegularExpressionValidator controls to manage the input into these controls, as shown in Figure 8.2:

Figure 8.2. Use the RegularExpressionValidator control to manage data input for complex values.


1.
Click to the right of the Zip Code text box, placing the insertion point at that location.

2.
In the Toolbox window, double-click the RegularExpressionValidator control, placing a new instance on the page adjacent to the Zip Code text box.

3.
Repeat the previous two steps for the Home Phone text box.

4.
Set the properties for the two validation controls as shown in Table 8.5.

Table 8.5. Set These Properties for Your RegularExpressionValidator Controls
ControlPropertyValue
RegularExpressionValidator1ControlToValidatetxtZipCode
 DisplayDynamic
 ErrorMessageEnter a ZIP code in the format 99999-9999
 ValidationExpressionClick the … button and select U.S. Zip Code to insert d{5}(-d{4})?)
RegularExpressionValidator2ControlToValidatetxtHomePhone
 DisplayDynamic
 ErrorMessageEnter a phone number in the format (999) 999-9999
 ValidationExpressionClick the … button and select U.S. Phone Number to insert (((d{3})?)|(d{3}-))?d{3}-d{4})

After setting all the properties, view the page in Browse mode again and verify that entering invalid ZIP code and phone number values does indeed display error messages as the page attempts to validate the data.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
13.58.51.228