preg_match,数字为PHP

rom*_*ain 3 php regex numbers preg-match

我用这个时:

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

返回值为1,当我使用它时:

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

返回值为0.

有人可以说我为什么好吗?谢谢 !

Bar*_*mar 5

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

echo 0.00001;
Run Code Online (Sandbox Code Playgroud)

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

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