Validating Expressions

IOTA^_^    

ASP.NET Developer's JumpStart
By Paul D. Sheriff, Ken Getz
Table of Contents
Chapter 8.  Validation Controls


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.

graphics/08fig02.jpg

  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
Control Property Value
RegularExpressionValidator1 ControlToValidate txtZipCode
  Display Dynamic
  ErrorMessage Enter a ZIP code in the format 99999-9999
  ValidationExpression Click the … button and select U.S. Zip Code to insert \d{5}(-\d{4})?)
RegularExpressionValidator2 ControlToValidate txtHomePhone
  Display Dynamic
  ErrorMessage Enter a phone number in the format (999) 999-9999
  ValidationExpression Click 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.


    IOTA^_^    
    Top


    ASP. NET Developer's JumpStart
    ASP.NET Developers JumpStart
    ISBN: 0672323575
    EAN: 2147483647
    Year: 2002
    Pages: 234

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net