I’ve gotten better and more comfortable with regular expressions as time has passed, and sometimes I spend timing wading through google for some common regular expressions I want to put into use, because I’m sure someone has already created it. Well, this isn’t always true (or easy to find), so I decided to collect some common Regular Expressions that may benefit readers. It’s a good idea to keep two things handy if you want to play with Regular Expressions yourself:
- A copy of the PHP book with a tab on pages 149 and 150 for common RegEx syntax
- A link to RegExPal, a color coding Regular Expression tester.
Common Regular Expressions:
Date and Time RegEx
Time format (no seconds):
HH:MM am/pm
^([1-9]|1[012]):(0[0-9]|[1-5][0-9])\s?(am|AM|pm|PM)$
Date in mm/dd/yyyy format, with an option for m/d/yyyy (exclude zero’s)
^(0?[1-9]|1[012])[ \/.-](0?[1-9]|[12][0-9]|3[01])[ \/.-](19|20)\d\d$
Date in dd/mm/yyyy format, with an option for d/m/yyyy (exclude zero’s)
^(0?[1-9]|[12][0-9]|3[01])[ \/.-](0?[1-9]|1[012])[ \/.-](19|20)\d\d$
Demographics RegEx
Age in years – max 122
^([0-9]|[1-9][0-9]|[1-9][0-1][0-9]|[1-9]2[0-2])$
Height in Feet and Inches:
6’3″
^([1-8]')?\s?([1-9]|1[01])$
Contact Information RegEx
U.S. Phone Number – parenthesis, periods, dashes, and spaces are allowed:
(123) 456.7890
^((\(\d{3}\)\s?|\d{3}\.)|(\d{3}[-\s\.]))?\d{3}[-\s\.]\d{4}$
U.S. Zip Code – 5 or 9 digit with dash
^\d{5}([\-]\d{4}){0,1}$
Email Address – (use preg_match) credit goes to fightingforalostcause.net
/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD
Currency RegEx
Currency – U.S. Dollars and Cents with commas for multiple’s of 1000 and a period for the decimal:
$12,000.23
^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,} (\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$
Currency – British Pounds with commas for multiple’s of 1000 and a period for the decimal:
£12,000.23
^\u00A3?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,} (\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$
Currency – Euros with periods for multiple’s of 1000 and a comma for the decimal:
€12.000,23
^\u20AC?([1-9]{1}[0-9]{0,2}(\.[0-9]{3})*(\,[0-9]{0,2})?|[1-9]{1}[0-9]{0,} (\,[0-9]{0,2})?|0(\,[0-9]{0,2})?|(\,[0-9]{1,2})?)$
Currency – Euros, French style, with spaces for multiple’s of 1000 and a comma for the decimal:
€12 000.23
^\u20AC?([1-9]{1}[0-9]{0,2}(\s[0-9]{3})*(\,[0-9]{0,2})?|[1-9]{1}[0-9]{0,} (\,[0-9]{0,2})?|0(\,[0-9]{0,2})?|(\,[0-9]{1,2})?)$






