validate email address
- October 24th, 2007
- php
Small function to validate an email address using preg_match. Returns TRUE if valid, false otherwise.
function is_valid_email($input) { preg_match("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$", $input)) }(via http://stickandink.com/handy-php-functions-snippets?commented=1)
















One comment to “validate email address”
- February 12th, 2008
- Freddy Bob
February 12th, 2008 at 12:03 amI am afraid that your regular expression is not quite complete. This is the full regex as described by RFC 822:
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \
t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37
\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)
*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\1
77]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*))*|(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\
r\n)?[ \t])*)*\@,;:\\”.\[\] 00-37\177]+(?:(
?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\
r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:
(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\
n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:
(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\
n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?
:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)
?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?
:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]
))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\
177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(
?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\]
00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]
\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] \
000-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r
\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()@,;:\\”.\[\]
00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]])
)|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@
,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:
(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(
?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?
:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=
[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()
@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))
|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)*\@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()
@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \
t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,
;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \
t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,
;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:
\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*
)?(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:
\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?
=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)
(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*
\>(?:(?:\r\n)?[ \t])*)(?:,\s*(?:(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r
\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*
“(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\
r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\]
00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\
\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00
-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()@,;:\\”.\[\] 00-37\177]+(?:(?:(?:\r\
n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”
(?:(?:\r\n)?[ \t])*)*\@,;:\\”.\[\] 00-37\17
7]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\]
(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]
+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?
:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]
+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?
:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 00-37\177]+(
?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[^\[\]\r\\]|\\.)*\](?:(
?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()@,;:\\”.\[\] 00-37\177]+(
?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\\.|(?:(?:\r\n
)?[ \t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”.\[\] 0
0-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|”(?:[^\”\r\\]|\
\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()@,;:\
\”.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?
:[^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()@,;:\\”
.\[\] 00-37\177]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[”()@,;:\\”.\[\]]))|\[(?:[
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*))*)?;\s*)
Submit your comment