2013-10-24 205 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);