Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] sprawdzanie pola input poprzez regex
Forum PHP.pl > Forum > PHP > Frameworki
janek9
Witam,

Mam dosyć mały, ale poważny problem, który nie daje mi spokoju. Jak sprawdzacie pole input, jeżeli user wpisze same spacje? U mnie np jeśeli wpisze same spacje w loginie w rejestracji, to zamiast się walidować przepuszcza go co daje nazwe linku. Można to jakoś poprawić ?
Gribo
możesz skorzystac z validatora sfRegexValidator i w nim wpisać wyrażenie regularne
janek9
Właśnie przed chwila napisałem swój walidator, który działa !

  1. class sfValidatorWhiteSigns extends sfValidatorBase
  2. {
  3.  
  4. protected function configure($options = array(), $messages = array())
  5. {
  6. parent::configure($options = array(), $messages = array());
  7. }
  8.  
  9. protected function doClean($value)
  10. {
  11. $clean = (string) $value;
  12.  
  13. if($clean == ' ' ||
  14. $clean == ' ' ||
  15. $clean == ' ' ||
  16. $clean == ' ' ||
  17. $clean == ' ' ||
  18. $clean == ' ' ||
  19. $clean == ' ' ||
  20. $clean == ' ' ||
  21. $clean == ' ' ||
  22. $clean == ' ' ||
  23. $clean == ' ' ||
  24. $clean == ' ' ||
  25. $clean == ' ' ||
  26. $clean == ' ' ||
  27. $clean == ' ' ||
  28. $clean == ' ' ||
  29. $clean == ' ' ||
  30. $clean == ' ' ||
  31. $clean == ' ' ||
  32. $clean == ' ' ||
  33. $clean == ' ')
  34. {
  35. throw new sfValidatorError($this, 'błąd.');
  36. }
  37.  
  38. return $clean;
  39. }
  40. }


Dodatkowo od 5 do 25 znaków we walidaorze sfValidatorString stąd tyle kombinacji długości. Może prostacki, ale działa.

@gribo - próbowałem przez 5 godzin z Regexem i niestety nic mądrego nie wymyśliłem..
-=Peter=-
O mój Boże... A nie lepiej użyć funkcji trim?

Cytat
próbowałem przez 5 godzin z Regexem i niestety nic mądrego nie wymyśliłem..

To polecam nauke podstaw php, a nie zabieranie się z motyką na księżyc.

Uwielbiany przeze mnie wręcz tekst:
Cytat
ale działa
janek9
Cytat(-=Peter=- @ 20.10.2009, 22:45:50 ) *
O mój Boże... A nie lepiej użyć funkcji trim?


To polecam nauke podstaw php, a nie zabieranie się z motyką na księżyc.

Uwielbiany przeze mnie wręcz tekst:


funkcja trim usuwa spacje. Spacje maja byc zawarte w ciagu. Natomiast nie same spacje. To napisz jak bys to rozwiazal ?exclamation.gif
Gribo
Twój sposób mnie trochę rozśmieszył biggrin.gif ale nie obraź się. Jak chcesz w ten sposób to robić to użyj: if (strRpos($value, " "))!=0; funkcja wypisuje miejsce wystąpienia spacji w ciągu znaków. Oczywiście możesz to zmienić i zrobić <1 . czyli że 1 znak nie może być spacja a następny już może
Crozin
  1. trim($abc) == ''
I masz sprawdzenie czy zmienna jest samymi białymi znakami. Przy czym lepiej sprawdzić czy coś czymś jest (wyr.reg.) niż czy czymś nie jest.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.