I want to have a validation in php for price which can be 100 or 100.45 The 2 decimal places will be optional.
Now the validation should allow only digits.
So far i managed to achieve it
if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?/', "100"))
{
echo "Invalid";
}
else
{
echo "Valid";
}
but the issue here is that it is showing valid even if i enter 100a.00 or 100a or 100.a00
Please help me in fixing it so that only digits are allowed i.e 100 or 100.00 format
Try this:
if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100"))
The $
denotes the "end of a string": http://www.php.net/manual/en/regexp.reference.meta.php
Lacks a $ in your regex. Presently, the first 3 characters in '100a...' match your regex.
preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100")
should do the trick.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With