Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Preg_match - zle/dziwne dzialanie
kaźmirz
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 2
Dołączył: 6.07.2010

Ostrzeżenie: (0%)
-----


Witam
Mam problem z wyrazeniem regularnym, ktory ma za zadanie przepuszczac tylko same litery i cyfry, a przepuszcza dodatkowo znak "^" i "_", czym jest to spowodowane i jak to wykluczyc?
Moje wyrazenie/skrypt:
  1. if( preg_match("/^[A-ż0-9]{3,20}$/", $login) ){
  2. echo "OK";
  3. }else{
  4. echo "ZLE";
  5. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kaźmirz
post
Post #2





Grupa: Zarejestrowani
Postów: 103
Pomógł: 2
Dołączył: 6.07.2010

Ostrzeżenie: (0%)
-----


Tak, tyle że przy Twoim zapisie, brak polskich znakow, jest spacja (ktorej nie chce), no i musi zostac {3,20} bo na taki przedzial zezwalam.
Rozumiem, ze po przerobce powinno wygladac to tak:
  1. /^([a-ż0-9]{3,20})$/i

rozumiem, ze modyfikator "i" ignoruje wielkosc liter, ale czy to wyeliminuje mi znaki "^" i "_" (IMG:style_emoticons/default/questionmark.gif) ?

Ok sprawdzilem ten Twoj ereg, ktory lekko przerobilem i wyglada na to ze dziala prawidlowo.
Tylko jesli ktos moglby mi wytlumaczyc, czemu przy moim zapisie przechodzily te znaki, a teraz jest ok?
Przyda sie na przyszlosc (IMG:style_emoticons/default/wink.gif)
Chodzi o nawiasy, czy modyfikator?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 00:42