2012-07-27 114 views
0

对不起,我在这里结束了家伙。Rails正则表达式日期验证

我有了这个

validates :departing_at, :format => { 
    # 2012-07-14 10:00 am 
    :with => /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}) ([ap]m)$/, 
    :message => "must be date and time" 
    } 

,但它只是不会验证2012-07-14 10:00或相匹配的正则表达式的任何其他日期格式。

但是,如果我把这个控制器

pattern = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}) ([ap]m)$/ 

if params[:vacation][:departing_at] =~ pattern 
    raise "works" 
else 
    raise params[:vacation][:departing_at].to_yaml 
    raise "doesn't work" 
end 

内它打印出“作品”任何想法的家伙? :(

+0

不是一个真正的回答你的问题...但我敢肯定有验证日期和时间比用正则表达式的一个更好的方法 – pcalcao 2012-07-27 13:27:16

+0

啊我。我只是在一边使用client_side_validations。 – lemon 2012-07-27 13:31:04

回答

0

尝试这种矫枉过正的正则表达式:

:with => /^(\d{4})\-(\d{2})\-(\d{2})\s(\d{2})\:(\d{2})\s([aApP][mM])$/,