Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] sprawdzanie pola input poprzez regex
janek9
post
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 2
Dołączył: 22.03.2009

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


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ć ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Gribo
post
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


możesz skorzystac z validatora sfRegexValidator i w nim wpisać wyrażenie regularne
Go to the top of the page
+Quote Post
janek9
post
Post #3





Grupa: Zarejestrowani
Postów: 121
Pomógł: 2
Dołączył: 22.03.2009

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


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..

Ten post edytował janek9 20.10.2009, 21:17:17
Go to the top of the page
+Quote Post
-=Peter=-
post
Post #4





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


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


Ten post edytował -=Peter=- 20.10.2009, 21:50:00
Go to the top of the page
+Quote Post
janek9
post
Post #5





Grupa: Zarejestrowani
Postów: 121
Pomógł: 2
Dołączył: 22.03.2009

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


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 ?(IMG:style_emoticons/default/exclamation.gif)
Go to the top of the page
+Quote Post
Gribo
post
Post #6





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


Twój sposób mnie trochę rozśmieszył (IMG:style_emoticons/default/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

Ten post edytował Gribo 20.10.2009, 22:29:52
Go to the top of the page
+Quote Post
Crozin
post
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  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.
Go to the top of the page
+Quote Post
l3l0
post
Post #8





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

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


http://php.net/manual/en/function.ctype-space.php
Go to the top of the page
+Quote Post

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: 25.08.2025 - 06:52