我真的很感謝一些幫助,它一直在推動我的堅果。我試圖驗證由zend表單提交的數字,以整數或小數(2位小數)的形式,允許0或0.00但不是空輸入。zend驗證器正則表達式的一個數字的問題 - 整數或可選浮點數
$form->element->addValidator ('regex', false, array(
'pattern'=>'/^\d+(\d{1,5})?(\.\d{1,2})?$/',
'messages'=>array(
'regexInvalid'=>'required',
'regexNotMatch'=>'number required')
)
);
出於某種原因,像100.00浮子生成以下驗證錯誤消息: 「‘100.00’包含其不是數字字符;但只有數字被允許」。不會生成regexNotMatch消息或regexInvalid消息,這是我所期望的。
這個驗證錯誤消息似乎是由我不打電話的數字驗證程序生成的,我可以做些什麼來阻止它踢入?
另外,空輸入不會生成任何驗證錯誤消息。
如果我嘗試像'rt67'這樣的字符串,我的regexNotMatch消息顯示正確。
我使用沒有mvc的zend組件,如果這有什麼區別的話。
其實我是一個白癡,並在其他地方叫過數字驗證器。所以我唯一的問題就是爲什麼正則表達式驗證空輸入。我沒有使用Zend_Validate_Float或Zend_Validate_Int,因爲我認爲他們會拋出錯誤分別呈現整數或浮動。我錯了嗎?有沒有辦法讓Zend_Validate_Float接受整數,而Zend_Validate_Int接受float? – annette 2010-11-24 12:16:30