Skeeve: Problem mit Regulären ausdrücken in Javascript

Beitrag lesen

Moin!

ich muss für eine Vorlesung eine kleine Hausaufgabe abgeben, und für eine der Aufgaben muss ich eine Email-Adresse auf Gültigkeit mit Javascript überprüfen. Ich dachte mit Regular Expressions ist es eine Sache von Minuten; aber mein Muster gibt auch dann True aus, wenn die Email-Adresse mit einem "." beginnt - was m.E. nicht der Fall sein sollte.

Also mit Deinem Ausdruck kommst Du aber nicht weit. Zum Beispiel hast Du  kein "+" zugelassen.

Soll die RFC 2822 konform sein? Dann sollte es dis hier tun:
/(?:(?:(?:(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*(?:[^\x00-\x1F\x7F()<>[]:;@,."\s]+(?:.[^\x00-\x1F\x7F()<>[]:;@,."\s]+)*)(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*)|(?:(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*"(?:(?:[^\"])|(?:\(?:[^\x0A\x0D])))+"(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*))@(?:(?:(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*(?:[^\x00-\x1F\x7F()<>[]:;@,."\s]+(?:.[^\x00-\x1F\x7F()<>[]:;@,."\s]+)*)(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*)|(?:(?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*[(?:\s*(?:(?:[^[]\])|(?:\(?:[^\x0A\x0D]))))*\s*](?:(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|(?:\s*((?:\s*(?:(?:(?>[^()\]+))|(?:\(?:[^\x0A\x0D]))|))*\s*)\s*)))*\s*)\s*)|\s+)*)))/xism

"Gestohlen" von CPAN dem Perl Archiv aud dem Modul Email::Address.

-- Skeeve