首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails应用程序的生日regex yyyy dd

rails应用程序的生日regex yyyy dd
EN

Stack Overflow用户
提问于 2011-05-19 21:23:25
回答 2查看 6.2K关注 0票数 4

我正在创建一个用户注册表单,并将出生日期添加到所需的字段中。

我已经搜索了google、github和stackoverflow,寻找了一个良好的出生日期(日期) regex,并发现如下:

user.rb

代码语言:javascript
复制
DateRegex = /^\d{4}-\d{2}-\d{2}/

validates_format_of :date_of_birth, :with => DateRegex

new.html.erb

代码语言:javascript
复制
<%=label_tag :date_of_birth %>
<%=f.text_field :date_of_birth %> 

(我知道这将允许一些假的出生日期,但我现在不喜欢安装诸如验证及时性之类的东西。)

然而,在测试出生日期时,它似乎并没有在regex中强制执行4-2-2。它有时允许2-2-2,2-4-2,2-2-4,它允许连字符和slashes...help?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-19 21:39:43

你总是可以用Date.parse来让你的生活变得容易得多。如果可以解析,它可能是一个有效的日期:

代码语言:javascript
复制
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日这样的事情。

票数 6
EN

Stack Overflow用户

发布于 2020-03-02 15:37:49

我希望这能帮到你。

代码语言:javascript
复制
validates :date_of_birth, format: { with: /^\d{4}-\d{2}-\d{2}$/, multiline: true }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6065048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档