我想在php中验证价格可以是100或100.45 小数点后2位是可选的。
现在验证应该只允许数字。
到目前为止,我设法实现了它
if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?/', "100"))
{
echo "Invalid";
}
else
{
echo "Valid";
}
但问题是,即使我输入100a.00或100a或100.a00,它也显示有效
请帮我修复它,以便只允许数字,即100或100.00格式
答案 0 :(得分:19)
试试这个:
if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100"))
$
表示“字符串结尾”:http://www.php.net/manual/en/regexp.reference.meta.php
答案 1 :(得分:4)
你的正则表达式缺少一个$。 目前,“100a ...”中的前3个字符与正则表达式相匹配。
preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100")
应该做的伎俩。