Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem Z Wyrazeniami Regularnymi
-Guest-
post
Post #1





Goście







niedawno zaczalem bawic sie w wyrazenia regularne i stworzylem ich pare do sprawdzania zmiennych formularza

zrobilem cos takiego:

  1. <?php
  2.  
  3. //chcę aby w tym ciągu znajdowały się tylko duże i małe litery
  4. if (ereg(&#092;"[a-zA-Z]+\", $ciag)) return true;
  5. else return false;
  6.  
  7. //chcę aby w tym ciągu znajdowały się tylko duże i małe litery, spacje oraz apostr
  8. fy '
  9. if (ereg(\"[a-zA-Z ']+\", $ciag)) return true;
  10. else return false;
  11.  
  12. //chcę aby w tym ciągu znajdowały się tylko cyfry
  13. if (ereg(\"[0-9]+\", $ciag)) return true;
  14. else return false;
  15.  
  16. //chcę aby w tym ciągu znajdowały się tylko duże i małe litery, cyfry i apostrofy '
  17. if (ereg(\"[a-zA-Z0-9']+\", $ciag)) return true;
  18. else return false;
  19.  
  20. //chcę aby w tym ciągu znajdowały się tylko duże i małe litery, cyfry, spacje i ap
  21. strofy '
  22. if (ereg(&#092;"[a-zA-Z0-9 ']+\", $ciag)) return true;
  23. else return false;
  24.  
  25. //chcę aby w tym ciągu znajdowały się tylko cyfry, nawiasy (), myślniki - i spacje
  26. if(ereg('[0-9()- ]+', $ciag)) return true;
  27. else return false;
  28. ?>


probowale zamiany znaku ' ' na '[:space:]' ale to nic nie daje

kazdy z tych kodow nie daje mi odpowiedniego wyniku. nie znam sie na wyrazeniach regularnych i pewnie walnalem jakiegos byka.
prosze kogos kto sie na tym zna i poprawil mi to (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
tumczasty
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


nie jestem pewien, ale może trzeba podopisywać ^ na początku i $ na końcu, żeby uznawało tylko te ciągi, które mają tylko dane znaki, a nie te, które zawierają m.in. dane znaki
Go to the top of the page
+Quote Post
delorian
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 23.08.2003
Skąd: Olsztyn, Polska

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


tumczasty ma rację co do ^ i $. Jeśli chodzi o spację to można zawsze dzać "\ ", ale już wogóle to najlepiej jakbyś zaczął używać zamiast wyrażeń POSIX'a wyrażenia PCRE perla. Mają troche dodatkowej składni, ale są mniej zachłanne i jak dla mnie bardziej logiczne niż wyrażenia posixowe.

i tak np.

  1. <?php
  2.  
  3. // litery, liczby i znak _ case insensitive 
  4. if (preg_match(&#092;"|^[w]+$|i\", $ciag)) return true;
  5. else return false;
  6.  
  7. // tylko cyfry
  8. if (preg_match(&#092;"|^[d]+$|i\", $ciag)) return true;
  9. else return false;
  10. ?>


preg_match" title="Zobacz w manualu PHP" target="_manual

Naprawdę polecam wyrażenia PCRE bardziej niż POSIX'a. Ale oczywiście nie zmuszam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Guest-
post
Post #4





Goście







dzieki, tak jak myslalem, walnalem byka (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

mam jeszcze taka funkcje, ale nie wiem czemu wyskakuje mi blad
  1. <?php
  2. function sprawdz_nr_tel($ciag) {
  3. if(ereg('^[0-9()- ]+$', $ciag)) return true; //to jest linia 27
  4. else return false;
  5. }
  6. ?>


i wyskakuje mi
Cytat
Warning: ereg(): REG_ERANGE: in c:\apache\htdocs\phps\aser.php on line 27


a linia 27 to ta z komentarzem z boku

a co teraz skopalem? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
tumczasty
post
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


czemu nie słuchasz deloriana? spację musisz poprzedzić odwrotnym ukośnikiem (\)
przyjrzyj się perlowym wyrażeniom regularnym i przemyśl, czy ich nie używać (są np. często szybsze); a jak zostaniesz przy ereg(), to tragedii nie powinno być
pozdrawiam
Go to the top of the page
+Quote Post
MoD
post
Post #6





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


A zna ktoś kursy wyrażeń perlowych (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Luke
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 215
Pomógł: 0
Dołączył: 28.10.2003
Skąd: -

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


Moze Ci sie przyda?
http://etext.lib.virginia.edu/helpsheets/regex.html
Go to the top of the page
+Quote Post
MoD
post
Post #8





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


Hmmm... a może coś po polsku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Słownik mi wcięło (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
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: 24.08.2025 - 04:00