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)

Bookmark this!

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • blinkbits
  • BlinkList
  • blogmarks
  • co.mments
  • del.icio.us
  • Digg
  • Fark
  • Furl
  • MisterWong
  • NewsVine
  • Reddit
  • Spurl
  • StumbleUpon
  • TailRank
  • Technorati

One comment to “validate email address”

  • February 12th, 2008
  • Freddy Bob

I 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

vision22.net

Copyright © 2007