当我使用这个时:
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/