Validate email addresses using regular expressions (RFC 2822)

Hi,

this is for everyone who wants to check for a RFC 2822 compliant email. Here are 2 expressions, one for normal and one for strange looking but valid emails:

$normal = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$";

$strange = "^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})$";

source: http://www.markussipila.info/pub/emailvalidator.php