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})$/
Vlákno názorů k článku
PHP okénko: Kontrola e-mailové adresy
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.
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].
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].

