嗨,我有一个红宝石正则表达式,我使用了Rubig http://rubular.com/r/RRc8twB6NL用于检查定价的小数10.00。我让它在Rubular上工作,但在我的应用程序中,这段代码不起作用:
validates_format_of :price, :with=>/^([0-9]{1,}\.{0,}[0-9]{0,2})$/
感谢您的帮助
答案 0 :(得分:1)
如果您只想让价格为一位数然后为零,则需要正则表达式
/\A[1-9]0*\.\d\d\z/
如果在小数点之前允许任何数字,则为
/\A[1-9]\d*\.\d\d\z/
如果分数部分是可选的,则它是
/\A[1-9]0*(\.\d\d)?\z/
/\A[1-9]\d*(\.\d\d)?\z/
如果你想允许美元符号(可能中间有空格),那么它是
/\A(\$\s*)?[1-9]0*\.\d\d\z/
/\A(\$\s*)?[1-9]\d*\.\d\d\z/
/\A(\$\s*)?[1-9]0*(\.\d\d)?\z/
/\A(\$\s*)?[1-9]\d*(\.\d\d)?\z/
答案 1 :(得分:0)
检查10.00:
/^10\.00$/
检查10.00 - 99.99:
/^[1-9]\d\.\d{2}$/