2013-10-08 120 views
2

我想在我的表單中驗證數字字段(價格)。
我嘗試以這種方式驗證格式,如10.00,這沒關係。php preg_match驗證價格格式

$pattern = '/^\d+(:?[.]\d{2})$/'; 

if (preg_match($pattern, $_POST['price']) == '0') { 
    echo "ERROR"; 
    exit; 
} 

現在,我想驗證,同時,字段格式像10.0010。 我怎麼能這樣做?

+0

http://regex101.com/r/nY0fV0 –

回答

10

您的新模式:

$pattern = '/^\d+(?:\.\d{2})?$/'; 

將驗證:

10 
10.00 

如果你想無效這種零領先的數值作爲05.00,以下模式將幫助:

$pattern = '/^(?:0|[1-9]\d*)(?:\.\d{2})?$/'; 
+0

完美!非常感謝你! –

+1

對於那些想要數據庫'DECIMAL(10,4)'驗證的人:'/^\ d {1,10}(?:\。\ d {1,4})?$ /'。 – TheFrost

2

如果你只是檢查它是否是一個數字,is_numeri c()在這裏好得多。它比正則表達式更可讀,更快捷。