如何在输入中验证价格?

时间:2013-08-26 15:16:36

标签: ruby-on-rails validation

我有一个输入(它是文本输入),用户可以设置价格。 问题是,用户有时可以像这样设置价格:

9
9.99
9,99
$9.99

验证此输入的最佳方法是什么?我在Heroku(= PostgreSQL数据库)上运行应用程序,数据类型列是十进制

2 个答案:

答案 0 :(得分:2)

Rails 4抱怨使用$和^,所以请使用:

validates :price, :presence => true, 
  :format => { :with => /\A(\$)?(\d+)(\.|,)?\d{0,2}?\z/ }

只是想节省时间; - )

答案 1 :(得分:1)

尝试以下内容。它匹配你所有的例子。

validates :price, :presence => true,
            :format => { :with => /^(\$)?(\d+)(\.|,)?\d{0,2}?$/ }