Autor | Zpráva | ||
---|---|---|---|
matlala Profil |
#1 · Zasláno: 26. 7. 2009, 13:01:29 · Upravil/a: matlala
Ahoj,
potřeboval bych, pomoct s kontrolou uživatelského jména. Reguláry mi skoro nejdou, je to hezky složité, pokouším s eje pochopit už tak půl roku a moc mi to nejde. Takže jméno může obsahovat pouuze znaky a-z,A-Z(vč háčků a čárek),čísla 0-9, tečku, _, @. Mám něco takového jen na zkoušku pak to zdokonalím, ale nejde mi to: if(!ereg("([a-zA-Z0-9\._-@]*)", "slovo.ad45t-_@")){ echo "Jméno může obsahovat pouze znaky a-z,A-Z, čísla a tečku<br>"; } Předem díky za rady. petr |
||
Alphard Profil |
#2 · Zasláno: 26. 7. 2009, 14:30:53 · Upravil/a: Alphard
zkuste (tohle bere i -, nevím jestli to tak chcete)
preg_match ("~^[\w.@ěščřžýáíéúůóňťď-]+$~iu", "testovaný řetězec") |
||
matlala Profil |
#3 · Zasláno: 26. 7. 2009, 20:05:41
e-e to nebude ono
|
||
Yur4Y Profil |
#4 · Zasláno: 26. 7. 2009, 20:38:40 · Upravil/a: Yur4Y
Alphard
Používate tam české znaky, nebude treba použiť aj modifikátor u? matlala Mali by ste sa vyhnúť ereg* funkciám a používať preg_* funkcie. |
||
matlala Profil |
#5 · Zasláno: 26. 7. 2009, 20:51:33 · Upravil/a: matlala
„
Alphard Používate tam české znaky, nebude treba použiť aj modifikátor u? “ Co to je, nikdy jsme to neslyšel „matlala Mali by ste sa vyhnúť ereg* funkciám a používať preg_* funkcie. “ Proč přesně? taky nevisím rozdíl, ale v tomto jsem amatér, reguláry mi nejsou, pořebuju pouze zkontrolovat nick. |
||
Alphard Profil |
#6 · Zasláno: 26. 7. 2009, 20:55:33 · Upravil/a: Alphard
Yur4Y:
Může být, abych pravdu řekl, reguláry s českými znaky nejsou moje silná stránka. Manuál se o u zmiňuje v souvislosti s utf-8, nevím, jak se to bude chovat např. s iso-8859-2. Nevsadil bych na správnou interpretaci \w a parametr i s dikritikou. matlala: „e-e to nebude ono“ Psal jsem zkuste. A napište, co nefunguje. |
||
Časová prodleva: 4 dny
|
|||
matlala Profil |
#7 · Zasláno: 30. 7. 2009, 13:13:31
Pořád mi to nejde
if(!preg_match ("~^[\w.@ěščřžýáíéúůóňťď-]+$~iu", "testovaný řetězec")){ echo "Jméno může obsahovat pouze znaky a-z,A-Z, čísla a tečku<br>"; } jinak kódování mám samo sebou UTF-8, pro portál kde budou psát lidi třeba i ze Slovenska a odjinud to byt musí. |
||
Joker Profil |
#8 · Zasláno: 30. 7. 2009, 13:17:33
Co znamená "nejde"?
Chybí tam zpětné lomítko před tečkou, řekl bych. |
||
Mastodont Profil |
#9 · Zasláno: 30. 7. 2009, 13:43:57
matlala
Ereg funkce budou brzy z PHP vypuštěny, proto by se už nově neměly do kódu dávat. Navíc jsou pomalejší. |
||
matlala Profil |
#10 · Zasláno: 30. 7. 2009, 17:05:18
Re:Mastodont:
Aha a jaká je náhrada třeba za obyčejný ereg aby fungovala stejně-ověření mailu a icq čísla |
||
Majkl578 Profil |
#11 · Zasláno: 30. 7. 2009, 18:18:41 · Upravil/a: Majkl578
matlala
treba obycejny preg_match, je potreba ale nepatrne upravit vyraz |
||
matlala Profil |
#12 · Zasláno: 30. 7. 2009, 20:48:29
jak třeba?, tady kus kodu.
kontrola mailu: $cast1 = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; $cast2 = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; if(!eregi("^$cast1+(\\.$cast1+)*@($cast2?\\.)+$cast2\$", $email)){ $chyba .= $chyba3; } kontrola ICQ(čísla 8-10): if($icq) { $icq = str_replace("-","",$icq); if(!eregi("^[0-9]{8,10}$",$icq)) { $chyba .= $chyba10; } } |
||
Časová prodleva: 15 let
|
0