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
Valdi_B
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

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


Przedtem miałeś [A-ż...] a więc m.in.wszystkie znaki od "A" do "ż".
Popatrz na tabelę kodów UTF-8: http://en.wikipedia.org/wiki/UTF-8
Pomiędzy "Z" i "a" masz np. [, \, ], ^, _ i ` (tyldę).
Wszystkie te znaki powinny być akceptowane w pierwotnej redakcji.

Po "z" też jest w kodzie trochę innych znaków niż polskie narodowe (zanim dojdziesz do "ż").

Inny wariant rozwiązania to tzw. cechy znaków.
Poczytaj: http://pl.php.net/manual/pl/regexp.reference.unicode.php
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: 9.10.2025 - 13:49