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

  • Автор темы Автор темы at0m1x
  • Дата начала Дата начала

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
т.е. дробная часть отделяется правильно - точкой. А вот запятая не нужна. Как сделать так что бы не пропускало запятую?
 
Vanga mode:
В en_US разделитель разрядов - это запятая, а разделитель целой и дробной части - точка.
В ru_RU пробел и запятая соответственно.
 
Решил проверять сумму с помощью regex:
PHP:
array('regex', true, array('pattern' => '/^[\d\.]+$/', 'messages' => 'Сумма содержит некорректные символы')),
 
at0m1x
............... - валидная сумма в твоей регулярке
 
Вообще как бэ для работы с деньгами ну никак не подходит float. В том же зенде есть библиотека что типа Zend_Crypt_Math_BigInteger. Точно не помню есть ли валидатор, но если и нет, то написать не составит труда вообще
 
Сверху