Home » Php » php – regular expression for valid 2 digit decimal number

php – regular expression for valid 2 digit decimal number

Posted by: admin July 12, 2020 Leave a comment

Questions:

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

How to&Answers:

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

Answer:

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.