ZendFramework Проверка денежной суммы с помощью Zend_Validate_Float

at0m1x

Новичок
Создаю форму, в которой добавляю поле для ввода денежной суммы:
PHP:
$this->createElement('text', 'amount')
            ->setRequired(true)
            ->setValue(0)
            ->setLabel("Сумма")
            ->setValidators(
                array(
                    array('Float', true, array('messages' => 'Поле содержит некорректные символы', 'locale' => 'en_US')),
               )
           );
Добавил в это поле валидатор Float. Он пропускает значения следующего вида:
1,479.33
т.е. дробная часть отделяется правильно - точкой. А вот запятая не нужна. Как сделать так что бы не пропускало запятую?
 

Dovg

Продвинутый новичок
Vanga mode:
В en_US разделитель разрядов - это запятая, а разделитель целой и дробной части - точка.
В ru_RU пробел и запятая соответственно.
 

at0m1x

Новичок
Решил проверять сумму с помощью regex:
PHP:
array('regex', true, array('pattern' => '/^[\d\.]+$/', 'messages' => 'Сумма содержит некорректные символы')),
 

Dovg

Продвинутый новичок
at0m1x
............... - валидная сумма в твоей регулярке
 

shureen

Милорд Лось Кристофер
Вообще как бэ для работы с деньгами ну никак не подходит float. В том же зенде есть библиотека что типа Zend_Crypt_Math_BigInteger. Точно не помню есть ли валидатор, но если и нет, то написать не составит труда вообще
 
Сверху