2013-05-16 58 views
3

我想在php中驗證價格可以是100或100.45 2位小數將是可選的。有效2位十進制數的正則表達式

現在驗證應該只允許數字。

到目前爲止,我設法實現它

if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?/', "100")) 
{ 
    echo "Invalid"; 
} 
else 
{ 
    echo "Valid"; 
} 

但這裏的問題是,它顯示有效的,即使我進入100a.00或100A或100.a00

請幫我固定這樣只有數字是允許即100或100.00格式

+1

您是否嘗試過在末尾添加'$'來匹配字符串的末尾?目前,它在開頭用'^'匹配一個有效的字符序列,所以'100a'有效 - a被忽略,因爲100有效。 – andrewsi

回答

2

在您的正則表達式中缺少$。 目前,'100a ...'中的前3個字符與您的正則表達式匹配。

preg_match('/^[0-9]+(\.[0-9]{1,2})?$/', "100") 

應該這樣做。