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

Chciałbym wiedzieć, czy jest ono poprawnie skonstruowane, czy można je jakoś ulepszyć?
<?php $matryca = "/^[0-9]{1,2}(.|,)[0-9]{2}$/"; $input = '0,30'; ?>
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ł:
ale co dalej...? Jak usuwać pierwszą cyfrę?
<?php if ($input[0]==0 and $input[1]!=0) ?>