我有一个输入(它是文本输入),用户可以设置价格。 问题是,用户有时可以像这样设置价格:
9
9.99
9,99
$9.99
验证此输入的最佳方法是什么?我在Heroku(= PostgreSQL数据库)上运行应用程序,数据类型列是十进制。
答案 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}?$/ }