Дата рождения регулярное выражение yyyy-mm-dd для приложения rails - PullRequest
4 голосов
/ 20 мая 2011

Я создаю форму регистрации пользователя и добавляю дату рождения в обязательные поля.

Я проверил google, github и stackoverflow на подходящее регулярное выражение даты рождения (date) и нашелэто:

user.rb

DateRegex = /^\d{4}-\d{2}-\d{2}/

validates_format_of :date_of_birth, :with => DateRegex

new.html.erb

<%=label_tag :date_of_birth %>
<%=f.text_field :date_of_birth %> 

(я знаю, что это допустит некоторые фиктивные даты рождения, но я предпочитаю не устанавливать ничего, как проверять своевременность на данном этапе.)

Однако, при проверке даты рождения,похоже, что он не обеспечивает 4-2-2 в регулярном выражении.Это позволяет 2-2-2 иногда, 2-4-2, 2-2-4, и это позволяет дефисы и косые черты ... помогите пожалуйста?

Кроме того, при необходимости, как использовать 3 текстаполя и введите его в один столбец mysql date_of_birth?

1 Ответ

5 голосов
/ 20 мая 2011

Вы всегда можете просто использовать 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 и 30 февраля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...