Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wyrażenie regularne na kwotę (cena, zapis walutowy)
tomilipin
post 1.03.2007, 17:58:52
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

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


Witam,
piszę sobie od jakiegoś czasu skrypt - taki jakby sklepik internetowy oparty na plikach tekstowych. Doszedłem do momentu, w którym dodaje się do oferty przedmiot i chciałbym aby wpisywana cena była validowana. Napisałem do tego wyrażenie regularne - pierwsze w mojej karierze biggrin.gif
Chciałbym wiedzieć, czy jest ono poprawnie skonstruowane, czy można je jakoś ulepszyć?
  1. <?php
  2. $matryca = "/^[0-9]{1,2}(.|,)[0-9]{2}$/";
  3. $input = '0,30';
  4.  
  5. if(preg_match($matryca, $input)==TRUE) print 'ok <br />'.$input;
  6. else print 'dupa a nie ok<br />'.$input;
  7. ?>


Ogólna specyfikacja:
- input jest traktowany jako string - zmusza mnie do tego tekstowa baza danych
- wpisywana liczba musi posiadać separator dziesiętnych w postaci kropki lub przecinka (później będzie to ustandaryzowane to jednego znaku)
- liczba musi być dodatnia (i tu pojawia się problem)
- jeśli pierwsza cyfra jest zerem a druga cyfra jest różna od zera (np. 04,50) to pierwszą cyfrę należy usunąć (aby było 4,50)

Problem:
- mój regexp akceptuje kwotę 0,00 oraz 00,00 a więc niedodatnią
- aby poradzić sobie z tą pierwszą cyfrą, wydaje mi się że warunek będzie brzmiał:
  1. <?php
  2. if ($input[0]==0 and $input[1]!=0)
  3. ?>
ale co dalej...? Jak usuwać pierwszą cyfrę?


--------------------
Kod
$kobieta = 'Kobieta zmienną jest...';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 23:51