Regulärer Ausdruck für eine gültige Email Adresse

die wenigsten unter uns Webentwicklern werden es wissen. Aber dies:

(?:(?:rn)?[ t])*(?:(?:(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t]
)+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:
rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(
?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ 
t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-
31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*
](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+
(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:
(?:rn)?[ t])*))*|(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z
|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)
?[ t])*)*<(?:(?:rn)?[ t])*(?:@(?:[^()@,;:\".[] 00-31]+(?:(?:(?:
rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[
 t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)
?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t]
)*))*(?:,@(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[
 t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*
)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t]
)+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*)
*:(?:(?:rn)?[ t])*)?(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+
|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:r
n)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:
rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t
]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31
]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](
?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?
:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?
:rn)?[ t])*))*>(?:(?:rn)?[ t])*)|(?:[^()@,;:\".[] 00-31]+(?:(?
:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?
[ t]))*"(?:(?:rn)?[ t])*)*:(?:(?:rn)?[ t])*(?:(?:(?:[^()@,;:\".[] 
00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|
\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()
@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"
(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t]
)*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\
".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?
:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[
]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*|(?:[^()@,;:\".[] 00-
31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\.|(
?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*)*<(?:(?:rn)?[ t])*(?:@(?:[^()@,;
:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([
^[]r\]|\.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\"
.[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[
]r\]|\.)*](?:(?:rn)?[ t])*))*(?:,@(?:(?:rn)?[ t])*(?:[^()@,;:\".
[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]
r\]|\.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 
00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]
|\.)*](?:(?:rn)?[ t])*))*)*:(?:(?:rn)?[ t])*)?(?:[^()@,;:\".[] 
00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?:[^"r\]|\
.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()@,
;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]]))|"(?
:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*
(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".
[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[
^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[]
]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*>(?:(?:rn)?[ t])*)(?:,s*(
?:(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\
".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*)(?:.(?:(
?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[
["()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t
])*))*@(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t
])+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*)(?
:.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|
Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*|(?:
[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".[
]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*)*<(?:(?:rn)
?[ t])*(?:@(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["
()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)
?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()
@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*(?:,@(?:(?:rn)?[
 t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,
;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t]
)*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\
".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*)*:(?:(?:rn)?[ t])*)?
(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()@,;:\".
[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:
rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z|(?=[[
"()@,;:\".[]]))|"(?:[^"r\]|\.|(?:(?:rn)?[ t]))*"(?:(?:rn)?[ t])
*))*@(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])
+|Z|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*)(?:
.(?:(?:rn)?[ t])*(?:[^()@,;:\".[] 00-31]+(?:(?:(?:rn)?[ t])+|Z
|(?=[["()@,;:\".[]]))|[([^[]r\]|\.)*](?:(?:rn)?[ t])*))*>(?:(
?:rn)?[ t])*))*)?;s*)

ist der reguläre Ausdruck für eine gültige Mail Adresse nach RFC822.

… und wer das nicht nutzt, ist kein Mann.

Christian Heilmann
JAX 2011 – Keynote
HTML5 – das Web und der Browser als Platform

Links:
Präsentation zur Keynote von Christian Heilmann

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: