rails app的出生日期正则表达式yyyy-mm-dd

我正在创建一个用户注册表单,我将生日期添加到必填字段。

我已经搜索了谷歌,github和stackoverflow的出生日期(日期)正则表达式,并发现这个:

user.rb

DateRegex = /^\d{4}-\d{2}-\d{2}/ validates_format_of :date_of_birth, :with => DateRegex 

new.html.erb

   

(我知道这会允许一些虚假的出生日期,但我不想在此时安装任何类似validation时效性的内容。)

但是,在测试出生日期时,它似乎并没有强制执行正则表达式中的4-2-2。 它允许2-2-2有时,2-4-2,2-2-4,它允许连字符和斜线…请帮助吗?

另外,如果有必要,如何使用3个文本字段并将其输入一个mysql date_of_birth列?

您可以随时使用Date.parse让您的生活更轻松。 如果可以解析它,它可能是一个有效的日期:

 validates_each :date_of_birth do |record, attr, value| begin Date.parse(value) rescue record.errors.add(attr, "Invalid date") end end 

这有利于拒绝像99-99-99和2月30日这样的事情。