有效2位十进制数的正则表达式

Asn*_*ore 7 php regex

我想在php中验证价格,可以是100或100.45小数点后2位是可选的.

现在验证应该只允许数字.

到目前为止,我设法实现了它

if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?/', "100"))
{
    echo "Invalid";
}
else
{
    echo "Valid";
}
Run Code Online (Sandbox Code Playgroud)

但这里的问题是即使我输入100a.00或100a或100.a00它也显示有效

请帮我修复它,以便只允许数字,即100或100.00格式

Bar*_*chs 19

试试这个:

if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100"))
Run Code Online (Sandbox Code Playgroud)

$表示"的字符串的末尾":http://www.php.net/manual/en/regexp.reference.meta.php


Chr*_*run 5

在您的正则表达式中缺少$。目前,“ 100a ...”中的前3个字符与您的正则表达式匹配。

preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100")
Run Code Online (Sandbox Code Playgroud)

应该可以。