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