Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 预匹配问题_Php_Regex - Fatal编程技术网

Php 预匹配问题

Php 预匹配问题,php,regex,Php,Regex,我编写了这个函数: public static function isDecimal($value, $places = 2) { if(preg_match("/^[0-9]+(\.[0-9]{".$places."})?$/", $value)) { return true; } else { return false; } } 用于测试输入的值是否为数字/十进制数。但是,如果输

我编写了这个函数:

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。有人能指出我的正则表达式的错误在哪里吗?

正则表达式很好,如果您将它与您提供的示例一起使用,它将返回false。

它在这里工作得很好。问题一定在函数调用附近。

您可能需要签出并重试


内置函数,似乎可以实现您所需的功能。

在这里工作正常。您确定问题出在您的函数内部,而不是函数调用附近吗?另外,尽管有点离题:双引号字符串扩展变量,因此您可以将$places放入字符串本身,而无需点连接。@Pianosaurus-谢谢!如果你把这个作为答案,我可以记下来。