当我使用这个时:

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

返回值为 1,当我使用它时:
preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', 0.00001);

返回值为 0。

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

最佳答案

因为小浮点数通常使用指数表示法显示,所以 0.00001 被转换为 1.0E-5 ,它与正则表达式不匹配。如果您简单地执行以下操作,您就可以看到这一点:

echo 0.00001;

正则表达式应该与字符串一起使用,而不是数字。
preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', '0.00001');

关于php - preg_match 与数字 PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30080411/

10-13 00:36