|
[ mitke013 @ 21.01.2010. 18:00 ] @
| Treba mi mala pomoc;
imam sledeci regexp:
/^[a-zA-ZžŽđĐšŠćĆčČ ]+$/
Treba mi da je validan ako je string prazan (ne NULL, vec nula duzina) ili ako nije prazan da proveri po gornjem pravilu. Ubih se trazeci i ne mogu da ga napravim. Pomoc? |
[ Aleksandar Ružičić @ 21.01.2010. 18:45 ] @
probaj sa: /^[a-zA-ZžŽđĐšŠćĆčČ ]*$/u
[ mitke013 @ 21.01.2010. 19:07 ] @
Moja greska, nisam dobro prepisao regex, treba:
/^[a-zA-ZžŽđĐšŠćĆčČ ]{3,20}$/
Znaci ili prazan string ili da ima izmedju 3 i 20 karaktera.
@aleksandar
Hvala, radi za onaj koji sam prvi put poslao, ali ne i za ovaj.
[ Nikola Poša @ 21.01.2010. 19:13 ] @
Pa stavi onda samo {0,20} umesto {3,20}.
[ Man-Wolf @ 21.01.2010. 19:14 ] @
Hmm, aj probaj ovako:
Code:
// Pretpostavimo da je $string string koji imas
$string = trim($string); // Obrisi whitespace-ove
$regex = "/[\w\s]{3,20}/";
if (empty($string) || preg_match($regex, $string)) {
// String je ok
}
Nisam probao, ali mislim da bi trebalo da radi...
[ kazil @ 21.01.2010. 20:37 ] @
Samo jedan mali heads-up. Matchovanje utf8 karaktera ne radi (jos uvek, kako treba). Da, ima u modifier, ali zna da pravi probleme.
Tako da, prvi pattern nece machovati nista ako su uneti samo utf8 karakteri.
[ mitke013 @ 22.01.2010. 00:17 ] @
Citat: Man-Wolf: Hmm, aj probaj ovako:
Code:
// Pretpostavimo da je $string string koji imas
$string = trim($string); // Obrisi whitespace-ove
$regex = "/[\w\s]{3,20}/";
if (empty($string) || preg_match($regex, $string)) {
// String je ok
}
Nisam probao, ali mislim da bi trebalo da radi...
Uradio bih ja to, ali mora da ostane regexp. Koristim Doctrine validaciju pa ne mogu da pisem custom f-je. Tj. mogu, al sto komplikovati.
Citat: Nikola Poša: Pa stavi onda samo {0,20} umesto {3,20}.
Mora da bude ili prazan string ili da ima izmedju 3 i 20 karaktera. Ne moze 1 ili 2 i mora da bude jedan regexp. Ludilo, nigde na netu ne mogu da nadjem regexp za ovo.
[ mitke013 @ 22.01.2010. 00:20 ] @
Citat: kazil: Samo jedan mali heads-up. Matchovanje utf8 karaktera ne radi (jos uvek, kako treba). Da, ima u modifier, ali zna da pravi probleme.
Tako da, prvi pattern nece machovati nista ako su uneti samo utf8 karakteri.
Ne znam za ovo, meni potpuno normalno rade nasa slova. Jedino sto svako nase slovo broji 2 bajta, ali to mi nije narocito bitno.
[ mitke013 @ 22.01.2010. 00:35 ] @
Ok drugari, nasao sam resenje. Ako nekog zanima, | je regexp za OR, pa je izraz:
/^([a-zA-ZžŽđĐšŠćĆčČ ]{3,20}|)$/
[ kazil @ 22.01.2010. 06:02 ] @
Vid' stvarno hvata nase karaktere ako se unesu u regex... funny. A da li si mozda probao sa cirilicom? Ako vec koristis šđžčć u regexu, mozda ti se pojave i cirilicna slova, a dodavati 60 karaktera u regex rucno je... Neprakticno. U tom slucaju probaj sa mb_* funkcijama.
[ mitke013 @ 22.01.2010. 21:16 ] @
Citat: kazil: Vid' stvarno hvata nase karaktere ako se unesu u regex... funny. A da li si mozda probao sa cirilicom? Ako vec koristis šđžčć u regexu, mozda ti se pojave i cirilicna slova, a dodavati 60 karaktera u regex rucno je... Neprakticno. U tom slucaju probaj sa mb_* funkcijama.
Ja sam 'strani placenik' pa me za cirilicu nimalo ne brine :)
Zezam se. Probacu, mada koliko se secam, nikad sa time nisam imao problema. Tj. bar se klijenti nisu zalili a meni iskreno nije ni palo na pamet da testiram tako nesto.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|