2

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

9
9.99
9,99
$9.99

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

4

2 回答 2

2

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

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

只是想节省人们的时间;-)

于 2015-09-01T20:07:08.503 回答
1

试试下面的东西。它匹配你所有的例子。

validates :price, :presence => true,
            :format => { :with => /^(\$)?(\d+)(\.|,)?\d{0,2}?$/ }
于 2013-08-26T15:38:50.943 回答