Mailinglisten-Archive |
So sprach =BBswEk=AB am 2001-09-08 um 13:08:29 +0200 : > hallo liste >=20 > ich gehe mit folgender regex =FCber die email adresse > eines users: >=20 > '^([a-zA-Z0-9_\.\-]+)\_(at)_([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,5})*$' Ist das so richtig? Damit erlaubst Du doch auch, das Domainnamen mit - oder . oder _ anfangen. Und Usernamen d=FCrfen bei Dir auch mit -._ anfangen (oder auch nur daraus bestehen). Ich bin n=E4mlich auch gerade dabei mir einen Regul=E4ren Ausdruck zu machen, der Email Adressen pr=FCft. Hierbei habe ich bei einigen Adressen Probleme, da ich nicht wei=DF, ob die Adresse technisch g=FCltig ist. Vlt. k=F6nnte einer von Euch mir helfen :) Ich schreibe dabei, ob ich annehme, das die Adresse korrekt ist (oder auch nicht). Bei folgenden Adressen bin ich mir unklar: user._(at)_domain -> Punkt am Ende des Local-Parts (annahme: Falsch) user..name_(at)_domain -> mehrere Punkte in LP (Okay) =2Euser_(at)_domain -> Punkt am Anfang des LP (Falsch) user-_(at)_domain -> Strich am Ende des LP (Falsch) user__(at)_domain -> Unterstrich am Ende des LP (Falsch) user--name_(at)_domain -> mehrere Striche in LP (Okay) user__name_(at)_domain -> Mehrere Unterstriche in LP (Okay) user_(at)_domain--name.tld -> Mehrere Striche in Domain (Okay) 0_(at)_domain -> Ziffer als einziges Zeichen in LP (Okay) -user_(at)_domain -> Strich als erstes Zeichen in LP (Falsch) Wenn ich das RFC richtig verstanden habe, so d=FCrfen als erlaubte Zeichen beim Usernamen [-a-z0-9_] vorkommen (mit Ausnahmen wie oben). Korrekt? Und im Domainnamen d=FCrfen auch nur [-a-z0-9] vorkommen, korrekt? Um es mal in Worte zu fassen. =20 Der Local-Part (also der Username) darf aus Buchstaben und Ziffern bestehen. Zwischen den Buchstaben oder Ziffern d=FCrfen ein oder mehrere Bindestriche (-), Unterstriche (_) und Punkte vorkommen. Das erste und letzte Zeichen mu=DF ein Buchstabe oder eine Ziffer sein. Ist das so richtig? Beim Domainnamen d=FCrfen nur Ziffern, Buchstaben und Bindestriche vorkommen. Dazu kommen noch Punkte (.) um Subdomains zu trennen. Das erste Zeichen des Domainnamens mu=DF ein Buchstabe oder eine Ziffer sein. Sofern nur Domainnamen (also keine IPs) betrachtet werden, mu=DF das letzte Zeichen ein Buchstabe oder ein Punkt sein. Die Top-Level-Domain mu=DF (zur Zeit noch) aus 2 bis 3 Buchstaben bestehen. "Sub"Domains (also alles was vor "." TLD kommt) d=FCrfen aus bel. Buchstaben/Ziffern/Bindestrich Kombinationen bestehen. Das erste und letzte Zeichen mu=DF wiederum ein Buchstabe oder eine Ziffer sein. Ist das richtig? Zur Zeit habe ich diesen Ausdruck: F=FCr den Local-Part (Usernamen): (^[0-9a-z_](?:[-_.]{0,1}[0-9a-z]){0,}) F=FCr den Domainnamen: ((?:[a-z0-9]{1,}(?:[-]{0,1}[a-z0-9]{0,}?){0,}?\.){0,}[a-z]{2,3}\.{0,1}$) -> =F7(^[0-9a-z_](?:[-_.]{0,1}[0-9a-z]){0,})_(at)_((?:[a-z0-9]{1,}(?:[-]{0,1}[a-z0-= 9]{0,}?){0,}?\.){0,}[a-z]{2,3}\.{0,1}$)=F7i Nur: Der matched halt bei einigen Adressen nicht, von denen ich annehme, das sie korrekt sind. Zum einen passt der nicht, wenn der Local-Part mehrere [_-.] direkt aufeinanderfolgend hat; und zum anderen Matched der, wenn der Domainname mehrere - direkt nacheinander hat. Danke sehr, Alexander Skwar --=20 How to quote: http://learn.to/quote (german) http://quote.6x.to (english) Homepage: http://www.digitalprojects.com | http://www.iso-top.de iso-top.de - Die g=FCnstige Art an Linux Distributionen zu kommen Uptime: 1 day 19 hours 39 minutes
php::bar PHP Wiki - Listenarchive