Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
PHP okénko: Kontrola e-mailové adresy

zet
zet (neregistrovaný)
5. 5. 2006 11:30

regex

dany regex neresi napr. vice pomlcek za sebou, ja pouzivam svuj osvedceny:

/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/
Jakub Vrána aura:61
5. 5. 2006 11:51

Re: regex

Tento výraz zakazuje řadu znaků, které ve skutečnosti povolené jsou. Dvě pomlčky za sebou se používají třeba ve zmiňovaných národních doménách (prefix xn--). Jedna část domény by neměla mít víc než 63 znaků, vy jich povolujete libovolné množství, výraz {0,62} ve vašem výrazu toto omezení nezaručuje.
Martin Mareš
5. 5. 2006 20:16

Re: regex

O 63 znacích se v RFC 2822 (formát mailových hlaviček a adres) určitě nic nepíše, ale máte pravdu, že pokud se bude mail doručovat pomocí SMTP, stejně na tento limit nakonec dojde.

Svého času jsem se pokusil kontrolu podle RFC 2822 napsat, výsledek, který povolenou syntaxi velmi dobře aproximuje, najdete na http://www.ucw.cz/~mj/tmp/checkaddr . Zvládne i takové špeky, jako je třeba "a b"@c.d nebo x@[y z.org].
Zasílat nově přidané příspěvky e-mailem