Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_match zwracajacy znak ktory wystapil a nie powinien
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


Czesc, mam prosta funkcje do walidacji:

  1. public function checkSimpleField($value) {
  2.  
  3. $safeChars = false;
  4. $pattern = "/^[a-zA-Z0-9-,_ ()]+$/";
  5.  
  6. if (preg_match($pattern, $value) == 1) {
  7. $safeChars = true;
  8. }
  9. return $safeChars;
  10. }


Dziala ok, ale ja bym chciala dostac jeszcze jakos nielegalne znaki (czyli te spoza $pattern) ktory wystapily. Czy jesli $value bedzie mialo wartosc: ";";; no to jak wykryc ze to wlasnie ";";; sa tymi niedozwolonymi znakami? Mam nadzieje ze rozumiecie o co mi chodzi.

pzdr,
misty
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


1. Ty definiujesz, które znaki są prawidłowe
2. masz funkcję, która ma jedną wartość jako parametr, jak również zwraca jedną wartość

Rozumiem, że funkcja zwróci true, jeśli parametr zawiera tylko i wyłącznie poprawne znaki i false jeśli parametr będzie zawierał choć jeden niepoprawny znak, to zaczynam się zastanawiać, jak z funkcji (skonstruowanej jak na listingu) chcesz zwrócić listę niepoprawnych znaków zawartych w parametrze?

Po mojemu masz dwa rozwiązania:
1. zwracasz tablicę zawierającą dwa elementy
2. przekazać do funkcji parametr przez referencję - ale to zniszczy wartość oryginalną, także poza funkcją
3. zwrócić listę znaków niedozwolonych i poza funkcją testować, czy ciąg znaków jest pusty (i wtedy mamy TRUE) czy nie (dostajemy FALSE) - ale to jest dodatkowy narzut przy teście, np. na wykonanie funkcji strlen

Który wybierzesz - zależy od Ciebie.
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: 27.12.2025 - 07:21