preg_match问题

时间:2011-07-02 10:29:14

标签: php regex

我写过这个函数:

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。任何人都可以指出我的正则表达式中的错误在哪里吗?

3 个答案:

答案 0 :(得分:1)

正则表达式没问题,如果你将它与你提供的例子一起使用,它将返回false。

答案 1 :(得分:1)

这里工作得很好。问题必须在函数调用附近。

答案 2 :(得分:1)

您可以查看is_numeric()is_float()

内置功能似乎可以满足您的需求。