Note: This article was originally published in 2011. Some steps, commands, or software versions may have changed. Check the current Programming documentation for the latest information.
Lately as part of my work I came across the need to validate some fields and realized probably there should be some common Regex expressions out there I could leverage. This came about because I was doing some code reviews and the validations were not working as intended and I wanted to find some generally accepted and tested expressions to ensure they would pass future testing efforts. Below is a table I found on the MSDN library you can refer to and I’ll add more expressions as the need for them arises or people share them.
| Field | Expression | Format Samples | Description |
|---|---|---|---|
| Name | ^{1,40}$ | John Doe O’Dell | Validates a name. Allows up to 40 uppercase and lowercase characters and a few special characters that are common to some names. You can modify this list. |
| Social Security Number | ^d{3}-d{2}-d{4}$ | 111-11-1111 | Validates the format, type, and length of the supplied input field. The input must consist of 3 numeric characters followed by a dash, then 2 numeric characters followed by a dash, and then 4 numeric characters. |
| Phone Number | ^??((d{2}) | d{2})?d{3}?d{4}$ | (425) 555-0123 425-555-0123 425 555 0123 1-425-555-0123 |
| ^(?("")("".+?""@) | ((((.(?!.)) | )*)(?<=)@))(?() | |
| URL | ^(ht | f)tp(s?)://()(:(0-9))(/?)(*)?$ | http://www.microsoft.com |
| ZIP Code | ^(d{5}-d{4} | d{5} | d{9})$ |
| Password | (?!^$)(?!^$)^({8,10})$ | Validates a strong password. It must be between 8 and 10 characters, contain at least one digit and one alphabetic character, and must not contain special characters. | |
| Non- negative integer | ^d+$ | 0 986 | Validates that the field contains an integer greater than zero. |
| Currency (non- negative) | ^d+(.dd)?$ | 1.00 | Validates a positive currency amount. If there is a decimal point, it requires 2 numeric characters after the decimal point. For example, 3.00 is valid but 3.1 is not. |
| Currency (positive or negative) | ^(-)?d+(.dd)?$ | 1.20 | Validates for a positive or negative currency amount. If there is a decimal point, it requires 2 numeric characters after the decimal point. |