使用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})$/
答案 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);