Click here to check my latest exciting videos on youtube
Search Mallstuffs

Flag Counter
Spirituality, Knowledge and Entertainment


Locations of visitors to this page


Latest Articles


Move to top
Validations using regular expressions and commonly used regex validations
Posted By Sarin on Jul 29, 2012     RSS Feeds     Latest Hinduism news
20437 Views

Validating input using .net regular expression validation control
  
<asp:RegularExpressionValidator ID="rgexpval" runat="server" ControlToValidate="txtMinAmt" ErrorMessage="Please Provide a Valid Numeric Value." ValidationExpression="^[-]?\d+(\.\d+)?$"
ValidationGroup="GrpS3PL" Visible="False">* </asp:RegularExpressionValidator>

Above control checks if the textbox
txtMinAmt contains numeric values.
ValidationExpression contains the regular repression to validate textbox txtMinAmt for numeric values
Regular expression validation can be done through code behind as well
if (System.Text.RegularExpressions.Regex.IsMatch(txtMinAmt.Text, @"^[-]?\d+(\.\d+)?$"))
             {
               
// email is valid
               
// ...
            }
Regex  ismatch function return either true or false as result.
  

Short introduction on regular expressions
  
Below are some of the sample Regular expressions commonly used for validations in practical scenarios:
  
Regex for valid Email Id  
Pattern:
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/  
Description:
Parser first find the beginning of the string (^).  
Inside the first group, one or more lowercase letters, dots, numbers, hyphens, or underscores is matched.  
After first group match, we check for @ sign.
Next is the domain name which must be: one or more lowercase letters, underscores, numbers, dots, or hyphens.  
Then comes the (escaped) dot, followed by the extension being two to six letters or dots. 2 to 6 because of the country specific TLD’s (.ny.us or .co.uk). Finally, we want the end of the string ($).  
String that matches:
[email protected]
String that doesn’t match:
[email protected] (TLD is too long)
  
Regex for checking valid Url
Pattern:

/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/  
Description:
Firstly, it checks if the URL starts with “https://&rdquo;, “https://&rdquo;, or neither of them. Question mark after the s allows URL’s to have either http or https. Typing HTTP or HTTPS can be optional as well. So a question mark is added at the end of it.  
Next is the domain name which can be one or more numbers, letters, dots, or hypens followed by another dot then two to six letters or dots. Inside the group, we want to match any number of forward slashes, underscores, numbers, spaces, letters, dots, or hyphens. In this case, star is used instead of the question mark because the star says zero or more, not zero or one. If a question mark has to be used there, only one file/directory would have been matched.  
  
Regex for checking IP Address Pattern
Pattern:

\b (((\d{1, 2})| ([0-1]\d {2})| (2[0-4]\d)| (25[0-5]))\.){3}((\d{1, 2})| ([0-1]\d {2})| (2[0-4]\d)| (25[0-5]))\b  
Description:
2} check for numbers between 0 and 99  
[0-1]\d{2} allows numbers between 100 and 199 in the form 0nn
2[0-4]\d permits numbers between 200 and 249
25[0-5] check for numbers from 250 to 255
Above four patterns are combined into an alternation and a \ is appended every time to enforce a. after every 2 or 3 digit number.
{3} means three sets of numbers like - nn. Or nnn to be provided.
Pattern 0-99, 100-199/0nn, 200-249 and 250-255 are repeated one more time to test for the final two/three digit number.
Wrap the pattern in word boundary constraints \b to ensure that the first & fourth block of two/three digit numbers are not preceded/followed by an illegal character.
  
Regex for checking Credit Card Pattern
Pattern:

((4\d {3})| (5[1-5]\d {2})| (6011))(|)? \d {4} (\5\d{4}){2}
Description:
4d {3} - checks if the Visa card number always starts with the digit 4.
5[1-5] d {2} - check for Mastercard numbers which start with 51-55.
6011 - Permits Discover numbers which always start with 6011.
Above three patterns are combined into an alternation
(|)? \d{4} - requires a set of four digits optionally preceded by a space.
(\5\d{4}){2} - requires two more sets of four digits preceded by a space
  
 is a back reference - back references in regexes are simply numbered from left to right, irrespective of any nesting of the individual patterns.
Note that this pattern validator does not necessarily ensure that the number provided matches a real credit card. Credit card numbers contain an issuer identifier and a final check digit which must be valid.  
  
Regex for checking US Telephone Number Pattern
Pattern:

(? [2-9]\d\d\)? (-| |\.)[2-9]\d\d\1\d{4}
Description:
The number is represented as three blocks of digits separated by a space a hyphen or a dot.
Separator characters cannot mix. I.e. (574) 975 1571 is legal but (574) 975.1571 is not.
The number is prefixed with three digits. First digit cannot be 0 or 1.
The prefix may be placed in parentheses.
The second block of digits consists of three numbers with first digit never being 0 or 1.
The final block is made up of any four digits.
We instruct the regex engine to index the first separator character for back referencing by using the code
([\.-]). At the location of the second separator character we use the back reference code . This ensures that numbers with mixed separator characters are not accepted.
This pattern will quite happily accept numbers bearing the form (574.975.1571 or 574) 975 1571.  

Similarly, below are some of the remaining validation done using regular expressions
Regex for checking valid IP Address
Pattern:
/^(?:(?: 25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/  
String that matches:
73.60.124.136 (no, that is not my IP address: P)
  
Regex for checking valid HTML
Pattern
:
/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/  
String that matches:
<a href=”https://net.tutsplus.com/&rdquo;>Nettuts+</a>
String that doesn’t match:
<img src=”img.jpg” alt=”My image>” /> (attributes can’t contain greater than signs)
  

Regex for checking indian pin code of six digits
Pattern
:
[0-9]{6}
String that matches:
400604
String that doesn’t match:
Any numeric value not consisting of six digits Ex: 40050 or 4000504
  
Regex for checking date in the European format of dd/mm/yyyy
Pattern
:
^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$  
String that matches:
07/06/1985
String that doesn’t match:
12/29/2007

Regex for checking date between 1-1-1757 to 31-12-9999
Pattern:
(0[1-9]|[12][0-9]|3[01])[-](0[1-9]|1[012])[-]((175[7-9])|(17[6-9][0-9])|(1[8-9][0-9][0-9])|([2-9][0-9][0-9][0-9]))
String that matches:
07-06-1985
String that doesn’t match:
12-29-2007

Regex for checking date between 1-1-1757 to 31-12-9999
Pattern
:
(0[1-9]|[12][0-9]|3[01])[-](0[1-9]|1[012])[-]((175[7-9])|(17[6-9][0-9])|(1[8-9][0-9][0-9])|([2-9][0-9][0-9][0-9]))
String that matches:
07-06-1985
String that doesn’t match:
12-29-2007
  
Regex for checking time in format hh:mm:ss AM/PM
Pattern
:
(0[1-9]|[1][0-2])[:](0[0-9]|[1-5][0-9])[:](0[0-9]|[1-5][0-9])[ ][A|a|P|p][M|m]
String that matches:
12:20:50 PM
String that doesn’t match:
12:70:50 PM
  
Regex for checking numeric value
Pattern
:
[0-9]*
String that matches:
5465131265
String that doesn’t match:
5345fh2454
  
Regex for checking non-numeric value
Pattern
:
[+]?[0-9]*\\.?[0-9]*
String that matches:
5465131265
String that doesn’t match:
-53452454
  
Regex for checking Social Security Number Pattern
Pattern:

-\d{2}-\d{4}


here


Share this to your friends. One of your friend is waiting for your share.
Share on Google+ Share on Tumblr Print Browser Favorite
Related Articles
Displaying Image in silverlight Datagrid
Visitors-Hits counter for your website
Tips and tricks with ajax calendar extender control
Data Validation using Ajax MaskedEditExtender control
Validations using regular expressions and commonly used regex validations
Populating RSS XML Feed or XML data on Datagrid
Advanced Datetime Format for string
Different Strings Format for Date Time

Post Comment