Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Problem z funkcja ereg
Pronigo
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 8.05.2005
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


  1. <?php
  2. if (ereg("^([0-9]+).([0-9]{2})", $a)) {
  3. return $a;
  4. }
  5. ?>


Napisalem sobie ta prosta funkcje sprawdzajaca poprawnosc wprowadzonej ceny. Ereg powinno sprawdzic czy cena jest w formacie: XXXXXX.YY

Pierwszy czlon moze skladac sie z wielu znakow, natomiast miejsce po kropce tylko z dwoch liczb. Okazuje sie, ze jezeli podam np. 1000.232 to rowniez zostanie to zaakceptowane.

Dlaczego tak sie dzieje, prosze nie dawac mi linka do php.net bo wlasnie z manuala korzystalem pisajac to funkcje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wrzasq
post
Post #2





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


przede wszystkim kropka w wyrazeniach regularnych zastepuje dowolny znak, wiec trzeba od niej "uciec".

oto (mam nadzieje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) dzialajaca wersja:

  1. <?php
  2.  
  3. function czyPoprawna($cena)
  4. {
  5. return ereg('^[0-9]+\.[0-9]{2}$', $cena);
  6. }
  7.  
  8. ?>


@Kshyhoo: twoja wersja w ogole nie dopuszczalaby kropki

Ten post edytował wrzasq 15.03.2006, 15:28:42
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 - 08:26