使用php preg_match来验证浮点值

时间:2013-10-24 03:24:11

标签: php preg-match floating

使用php(preg_match)验证变量是否为float 一直在网上搜索但仍未找到我需要的那个。请指教。

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

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

解决方案:

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

2 个答案:

答案 0 :(得分:4)

很简单:

if (($num = filter_var($var, FILTER_VALIDATE_FLOAT)) !== false) {
    echo "Yay $num is a float!\n";
}

答案 1 :(得分:0)

您可以使用:

preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);