preg_match 编号 PHP

preg_match with number PHP

当我使用这个时:

preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', 0.0001);

return 值为 1,当我使用它时:

preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', 0.00001);

return 值为 0。

有人可以告诉我为什么吗?谢谢!

因为小浮点数通常使用指数表示法显示,所以 0.00001 被转换为 1.0E-5,这与正则表达式不匹配。如果你只是这样做,你可以看到这个:

echo 0.00001;

正则表达式应该与字符串一起使用,而不是数字。

preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', '0.00001');