Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko REGEXP-a

[es] :: PHP :: Pomoc oko REGEXP-a

[ Pregleda: 2319 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Pomoc oko REGEXP-a21.01.2010. u 18:00 - pre 173 meseci
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?
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Pomoc oko REGEXP-a21.01.2010. u 18:45 - pre 173 meseci
probaj sa: /^[a-zA-ZžŽđĐšŠćĆčČ ]*$/u
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Pomoc oko REGEXP-a21.01.2010. u 19:07 - pre 173 meseci
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.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Pomoc oko REGEXP-a21.01.2010. u 19:13 - pre 173 meseci
Pa stavi onda samo {0,20} umesto {3,20}.
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Pomoc oko REGEXP-a21.01.2010. u 19:14 - pre 173 meseci
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...
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.mbb.telenor.rs.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: Pomoc oko REGEXP-a21.01.2010. u 20:37 - pre 173 meseci
Samo jedan mali heads-up. Matchovanje utf8 karaktera ne radi (jos uvek, kako treba). Da, ima u modifier, ali zna da pravi probleme.

Code (php):


$string = 'š';

var_dump(preg_match('#\w{1}#', $string)); // 0

var_dump(preg_match('#\w{1}#u', $string)); // 0

var_dump(preg_match('#.{1}#', $string)); // 1

mb_regex_encoding('utf-8');
var_dump(mb_ereg_match('\w{1}', $string)); // true

 


Tako da, prvi pattern nece machovati nista ako su uneti samo utf8 karakteri.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Pomoc oko REGEXP-a22.01.2010. u 00:17 - pre 173 meseci
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.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Pomoc oko REGEXP-a22.01.2010. u 00:20 - pre 173 meseci
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.

Code (php):


$string = 'š';

var_dump(preg_match('#\w{1}#', $string)); // 0

var_dump(preg_match('#\w{1}#u', $string)); // 0

var_dump(preg_match('#.{1}#', $string)); // 1

mb_regex_encoding('utf-8');
var_dump(mb_ereg_match('\w{1}', $string)); // true

 


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.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Pomoc oko REGEXP-a22.01.2010. u 00:35 - pre 173 meseci
Ok drugari, nasao sam resenje. Ako nekog zanima, | je regexp za OR, pa je izraz:

/^([a-zA-ZžŽđĐšŠćĆčČ ]{3,20}|)$/
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.mbb.telenor.rs.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: Pomoc oko REGEXP-a22.01.2010. u 06:02 - pre 173 meseci
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.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Pomoc oko REGEXP-a22.01.2010. u 21:16 - pre 173 meseci
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.
 
Odgovor na temu

[es] :: PHP :: Pomoc oko REGEXP-a

[ Pregleda: 2319 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.