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