【发布时间】:2015-05-06 14:57:19
【问题描述】:
当我使用这个时:
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。
有人可以说我为什么吗?谢谢!
【问题讨论】:
标签: php regex numbers preg-match
当我使用这个时:
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。
有人可以说我为什么吗?谢谢!
【问题讨论】:
标签: php regex numbers preg-match
因为小浮点数通常使用指数表示法显示,所以0.00001 被转换为1.0E-5,这与正则表达式不匹配。如果您只是这样做,您可以看到这一点:
echo 0.00001;
正则表达式应该与字符串一起使用,而不是数字。
preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', '0.00001');
【讨论】: