Zend框架货币验证

时间:2010-05-19 16:26:46

标签: zend-framework validation currency

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

看过Zend_Validate_Float。

  1. 需要检查该值是否介于0和2dp之间。
  2. 理想情况下,区域设置感知(如ZVF所示)以允许特定于区域设置的格式(数千,小数点为逗号/点)
  3. 还希望扩展为允许/禁止负值
  4. 并提供可选的上限/下限。

  5. 关键是,我可以做3.和4.带链。

  6. 我需要正则表达式吗?

1 个答案:

答案 0 :(得分:0)

AFAIK尚未在ZF中使用货币验证器。

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

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

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

检测使用的区域设置并不是那么简单,因此我建议创建其他选择字段,以选择预定义格式(例如区域设置)并将此值用于附加到货币字段的自定义验证器。