2013-10-24 115 views
-4

使用php(preg_match)来验证变量是否为float。
在网上搜索,但还没有找到我需要的。请建议。使用php preg_match来验证浮点值

我的要求:
VALID
(数字和一个点只)
0.1(任何从0开始,必须由一个点,然后数跟随)
1.1234567890(最多10位小数)。

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

解决方案:

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

所以,你还没有找到一个解决方案,现在你要我们做您的工作,为免费的吗? – zerkms

+0

检出'FILTER_VALIDATE_FLOAT'。 –

+2

@Jack:你是否意识到你提议OP开始思考*?你怎么敢?! – zerkms

回答

4

很简单:

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

你有我的preg_match正则表达式的答案? – user1884324

+2

@ user1884324不,这太复杂了。 –

0

您可以使用:

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