Ví někdo přesný předpis syntaxe, jak MUSÍ vypadat mailová adresa? Nebo už někdo vydumal regulár na validaci? Je to někde k dohledání? Díky.
no, mělo by to být uživatel@server.nekde a jsou přípustné znaky klasického url...
mohlo by to vypadat přiblžně takto:
if (!ereg("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$",$email)){
echo "Neplatná emailová adresa"}
else{
/* zpracování */
}
^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$
vyhovuje:
name.surname@blah.com
Name Surname <name.surname@blah.com>
"b. blah"@blah.co.nz
nevyhovuje:
name surname@blah.com
name."surname"@blah.com
name@bla-.com
zdroj: http://www.regexlib.com/REDetails.aspx?regexp_id=711
Hmmmmm, to už trošku hardcore výraz :)) ani se mi ho nechce pročítat, pravda, že můj by zřejmě dovolil pomlčku na konci i začátku názvu serveru, takže by se možná hodilo rozšířit....
Díky všem, zdá se, že odkaz od lacopa bude nejúplnější. Také se musím jako JR ponořit mozkem, než to vyluštím. Zatím jsem vycházel z podmínek:
Malá/velká [a-z] se beztak zkonvertují na malá.
Povoleny jsou a-z, číslice, podtržítko, pomlčka.
Právě jeden zavináč @ uvnitř, ne vedle tečky, následován aspoň znakem, tečkou a aspoň dvěma znaky, čili poslední tečka aspoň třetí od konce. Celkem teček aspoň právě tato jedna, ne 2 vedle sebe, žádná na začátku ani konci.
Nejistotou trpím:
Smí být pomlčka, číslice nebo podtržítko na začátku, na konci, vedle libovolné tečky [před|za|oboje], uvnitř poslední části za poslední tečkou (v "extenzi")?
tt: http://www.faqs.org/rfcs/rfc2822.html :)
ono ten regex je uplny, netreba ho ani upravovat :)
^.+@.+\\..+$ - z jedny knihy, nechapu ale ty dve zpetny lomitka. Vysvetli nekdo ?
Podle miho v PHP by melo bejt jen jedno \
v perlu 2.. escapujes tecku, coz je spec. znak
...?...
Ja bych to taky chapal tak, jako ze escapuju tecku. tedy ze by melo bejt lomitko jedno. Ono to se dvema ale funguje, zvlastni.