【发布时间】:2010-05-04 16:09:25
【问题描述】:
我正在尝试使用正则表达式验证美元金额:
^[0-9]+\.[0-9]{2}$
这很好用,但是当用户提交表单并且美元金额以 0(零)结尾时,ruby(或 rails?)会将 0 去掉。 所以 500.00 变成 500.0 从而导致正则表达式验证失败。
有没有办法让 ruby/rails 保持用户输入的格式,不管尾随零如何?
【问题讨论】:
-
您为什么不使用
validates_numericality_of而不是正则表达式? -
我将如何使用
validates_numericality_of来确保 500.001 会失败?我只想要特别格式化的 '[任何 0 到 9 位数字]。[任何 0 到 9 位数字中的 2 个]' - 因此使用validates_format_of :amount, :with => /^[0-9]+\.[0-9]{2}$/, :message => "must contain dollars and cents, seperated by a period"
标签: ruby-on-rails ruby validation floating-point