Autor | Zpráva | ||
---|---|---|---|
4li3n Profil |
#1 · Zasláno: 14. 3. 2010, 17:29:13
Dobrý den,
potřebuji upravit tento kód: preg_match_all('/([-a-z0-9._]+)@([-a-z0-9._]+).([a-z])/',strtolower($emaily), $matches); tak aby mi nebral retezce typu necoblabla@seznam.cz,b samosebou mi tam vadí ta čárka a poslední znak "b", který se bere z pokračujícího řetězce, poraďte prosím jak toto ošetřit. Předem děkuji, potýkám se tady s tím už nějakou dobu :) |
||
Radek9 Profil |
#2 · Zasláno: 14. 3. 2010, 17:32:51
4li3n:
Na vašem místě bych zkusil [-a-z0-9._] nahradit za [\-a-z0-9\._] . Nevím jestli to pomůže, ale myslím, že tyto znaky se mají escapovat.
|
||
4li3n Profil |
#3 · Zasláno: 14. 3. 2010, 17:43:27
Tak jsem zkusil a nepomohlo, zjistil jsem, že počet písmen na konci za doménou a čárkou je ovlivněn tímto
'/([-a-z0-9._]+)@([-a-z0-9._]+).([a-z])/' '/([-a-z0-9._]+)@([-a-z0-9._]+).([a-z]{2,4})/' |
||
4li3n Profil |
#4 · Zasláno: 14. 3. 2010, 17:47:07
Jak to tak bývá,
řešení jsem našel po chvíli co už jsem to nevydržel a napsal sem, takže jsem použil toto: preg_match_all('/([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})/',strtolower($emaily), $matches); |
||
mckay Profil |
#5 · Zasláno: 14. 3. 2010, 18:57:04
4li3n:
Díky, mimochodem - neděláš náhodou na nějakém indexbotovi? :) O něco podobného jsem se už nedávno pokoušel ;). |
||
4li3n Profil |
#6 · Zasláno: 14. 3. 2010, 19:00:41
Ahoj,
ještě to má pár much, musím to odladit, na indexbotovi nedělám, tohle je čistě pro ruční použití, ale aby z toho nebyla prace na den, tak jsem potřeboval tuhle výpomoc :) |
||
DoubleThink Profil * |
#7 · Zasláno: 14. 3. 2010, 19:08:02 · Upravil/a: DoubleThink
Tohle by měl být regulár podle zjednodušených pravidel RFC 2822 (z knihovny RegexBuddy):
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])? |
||
Majkl578 Profil |
#8 · Zasláno: 14. 3. 2010, 22:19:25
Od pohledu bych řekl, že problém dělala ta poslední neescapovaná tečka. Doporučuji se podívat na znaky, které je třeba escapovat, jsou vypsány u funkce preg_quote.
|
||
Časová prodleva: 14 let
|
0