2010-05-19 107 views
1

如何验证(在这种情况下是表单元素)以确保该值是货币?Zend框架货币验证

看过Zend_Validate_Float。

  1. 需要检查该值是否在0到2dp之间。
  2. 理想的区域识别(如ZVF是),以允许设置特定的格式(千,小数逗号/点)
  3. 也想扩展到允许/禁止负值
  4. 并提供可选的上/下限。

  5. 是关键,因为我可以做3和4连锁。

我需要正则表达式吗?

回答

0

AFAIK目前还没有用于ZF货币的验证器。

你需要写一个自定义的。 See docs for writing custom validators

基本上,您可以做的最简单的事情就是将输入标准化为浮点数(如果您需要语言环境,则为+货币符号)。但纠正用户输入不是一个好的解决方案。

对于语言环境特定的格式,您可能需要存储在Zend_Locale_Data中的语言环境数据。但是为了比较输入值,您必须编写自定义货币转换器。

检测使用的语言环境并不那么简单,所以我建议创建额外的选择字段,用于选择预定义的格式(例如语言环境)并将此值用于附加到货币字段的自定义验证程序。