-5

使用 php (preg_match) 来验证变量是否为浮点数。
一直在网上搜索,但仍然没有找到我需要的那个。请给个建议。

我的要求:
有效
(仅数字和一个点)
0.1(任何以 0 开头,必须后跟一个点,然后是数字)
1.1234567890(最多 10 个小数位)

无效的
空格/空格
0
0.
0.0
00.0
0.0.0
01
整数
+0.1(无加号)
-0.1(无减号)
.1
01.1
1.0.1e38
(无指数)

解决方案:

/^(?=.*[1-9])(?!0\d)([0-9]{1,10})(\.[0-9]{1,10})$/
4

2 回答 2

4

很简单:

if (($num = filter_var($var, FILTER_VALIDATE_FLOAT)) !== false) {
    echo "Yay $num is a float!\n";
}
于 2013-10-24T03:29:35.117 回答
1

您可以使用:

preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
于 2013-10-24T04:51:17.647 回答