The following regex attempts to match numbers that adhere to the North American Numbering Plan. It matches common entry combinations, such as #######, ###.###.####, ###-###-####, ### ### ####, and (###) ### ####.

http://www.gigoblog.com/2008/11/28/regex-preg_match-for-zip-codes-phone-numbers-states-urls-and-email-addresses/