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-谢谢!如果你把这个作为答案,我可以记下来。