Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z preg_match()
RemoverPL
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 17.07.2013

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


Witam, mam problem z funkcją preg_match. Mam kod, który powinien sprawdzać czy zmienna $tekst zawiera polskie znaki. Jeżeli tak, to powinien wyświetlić się napis "W tekscie wystepuja polskie znaki." a jeżeli nie, to powinno pisać "Tekst nie zawiera polskich znakow.". Problem w tym, że zawsze pisze że w tekście są polskie znaki, nawet jak ich nie ma. Oto kod:
  1. <?php
  2. $tekst = "aaa";
  3. $wyrazenie = '/^[a-z]$/';
  4. if(preg_match($wyrazenie, $tekst)) 
  5.     echo"Tekst nie zawiera polskich znakow.";
  6. else 
  7.     echo "W tekscie wystepuja polskie znaki.";
  8. ?>

Czy mógłby ktoś to poprawić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
drPayton
post
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. preg_match("/[^a-z]/", "aaa")

Czyli czy string podany zawiera znaki, nie należące do podanej klasy (tu: tylko litery a-z)

Te rozwiązanie nawiązuje do podanego przez Ciebie przykładu. Tu jak widać definiujesz dozwolone znaki (=zwróci 'false' również wtedy, gdy w stringu podany zostanie np cyfra)*. Jeśli ma działać tylko i wyłącznie na polskie litery, to właśnie je musisz zdefiniować, czyli:

  1. preg_match("/[ąćęłńóśźż]/", "aaa")



*edit, ściślej:
"czy są znaki nie należące do podanych" a nie "czy zawiera tylko znaki należące do podanych" bo to subtelna różnica [w zwracanej wartości] (IMG:style_emoticons/default/wink.gif)

Ten post edytował drPayton 17.07.2013, 21:58:56
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: 4.10.2025 - 17:54