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

regexp Validator za DisplayName

[es] :: PHP :: regexp Validator za DisplayName

[ Pregleda: 1694 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rourke

Član broj: 66772
Poruke: 28
89.216.196.*



Profil

icon regexp Validator za DisplayName18.04.2007. u 14:37 - pre 206 meseci
Pozdrav svima,

Imam funkciju koja proverava uneti string parametar i vraca boolean ukoliko je uneti string prosao validaciju. Primer:

Code:

function isValid($Value)
{
  $ValidChars = ". _+";
  if(!eregi("^[a-z0-9$ValidChars]{" . MIN_SIZE . "," . MAX_SIZE . "}$",$Value))
  {
    return false;
  } return true;
}


MIN_SIZE i MAX_SIZE su konstante za minimalnu i maksimalnu duzinu (3, 24)

Ova funkcija obavjla posao, sve dotle dok se ne unese neki unicode znak (tj. prebaci se tastatura recimo na cirilicu i kuca šđč...). Odmah sam predpostavio da je greska negde u delu izraza : a-z i shvatio da mozda problem nije toliko lak.

Da li mozda imate neko resenje za ovo, tj. da li mozda moze nekako prosiriti ovaj "scope" od a-z i sl.

Da li mozda moram da menjam pristup iz korena?

Hvala na pomoci
 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
*.eunet.yu.



+5 Profil

icon Re: regexp Validator za DisplayName18.04.2007. u 16:23 - pre 206 meseci
Mislim da ce ti ovo pomoci....
Code:

  $data = 'Incredibiles';
  echo preg_match('/\w{3,24}/u',$data);
  // obrati paznju na [u] parametar, to znaci da trazi unicode karaktere
  // [\w] - trazi samo slova [word-character]


Ako sam bio jasan nece ti biti tesko da prepravis upit da odgovara tvojim zahtevima.

[Ovu poruku je menjao 357_97 dana 18.04.2007. u 20:16 GMT+1]
 
Odgovor na temu

rourke

Član broj: 66772
Poruke: 28
89.216.196.*



Profil

icon Re: regexp Validator za DisplayName18.04.2007. u 20:46 - pre 206 meseci
Nazalost ne radi :(

pokusao sam sa sledecim primerom:

Code:

  $data = 'švrća';
  echo preg_match('/\w{3,24}/u',$data);


(dokument je utf-8).

Vraca 0, dok za regularna slova vraca 1.

Pozdrav
 
Odgovor na temu

rourke

Član broj: 66772
Poruke: 28
89.216.196.*



Profil

icon Re: regexp Validator za DisplayName18.04.2007. u 20:54 - pre 206 meseci
Sada sam dodao

Code:

  $data = 'aaašvrća';
  echo preg_match('/\w{3,24}/u',$data);


i vraca 1

sad mi je vec manje jasno :)
 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
*.eunet.yu.



+5 Profil

icon Re: regexp Validator za DisplayName18.04.2007. u 22:13 - pre 206 meseci
Sto bi ovi iz M$-a rekli final edition... Znao sam da treba da predjem na Multibyte String Functions ali sam i tamo imao gremline no nekako nadjoh resenje... Setih se da sam citao o ovom problemu te iskoristih search. Detaljnije o problematici
ovde
Code:

 // $data = 'švrća2.00-@';  // false
 $data = 'švrćaPaLatinica'; // true    
 
 mb_internal_encoding('UTF-8');
 mb_regex_encoding('UTF-8');
 
 $final = mb_ereg ("^[[:alnum:][:digit:]._+]{3,24}$", $data);
 // Ovim se kupe slova, brojevi i znakovi [._+]
 echo ' -----> ' . $final;
 
Odgovor na temu

rourke

Član broj: 66772
Poruke: 28
89.216.196.*



Profil

icon Re: regexp Validator za DisplayName18.04.2007. u 23:57 - pre 206 meseci
Izgleda da je to to :)

Nadam se da dalje nece biti problema.

Hvala puno na pomoci, tesko da bih sam resio :)

Najvise me zbunjuju ove vrste parsiranja (PHP, Perl...), vidim da neke funkcije rade samo sa jednim od tipova.
 
Odgovor na temu

[es] :: PHP :: regexp Validator za DisplayName

[ Pregleda: 1694 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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