我写过这个函数:
public static function isDecimal($value, $places = 2)
{
if(preg_match("/^[0-9]+(\.[0-9]{".$places."})?$/", $value)) {
return true;
} else {
return false;
}
}
用于测试输入的值是否为数字/十进制数。但是,如果输入数字“23c.32”或“2b3.23”,则返回true。任何人都可以指出我的正则表达式中的错误在哪里吗?
答案 0 :(得分:1)
正则表达式没问题,如果你将它与你提供的例子一起使用,它将返回false。
答案 1 :(得分:1)
这里工作得很好。问题必须在函数调用附近。
答案 2 :(得分:1)
您可以查看is_numeric()和is_float()。
内置功能似乎可以满足您的需求。