我正在开发一个使用特殊日期格式的 Ruby on Rails 应用程序。有问题的日期格式是 Year.month.day,日期可以是:
年.月.日 年.月 年
我正在研究一种必须检查格式的验证方法,如果输入日期符合任何这些格式,则使其有效。到目前为止,我的代码是:
def data_format_correct
regexymd = /[0-9]{4}[.][0-9]{1,2}[.][0-9]{1,2}/
regexym = /[0-9]{4}[.][0-9]{1,2}/
regexy = /[0-9]{4}/
if :data.to_s =~ regexymd
return true
elsif :data.to_s =~ regexym
return true
elsif :data.to_s =~ regexy
return true
else
errors.add(:data)
return
end
结尾
每次我在表格中输入日期时,其他情况都会随着错误而上升。我很确定我的代码是正确的。我错过了什么吗?
编辑:
找到了解决方案。像这样工作:
regexymd = /^[0-9]{4}[.][0-9]{1,2}[.][0-9]{1,2}$/
regexym = /^[0-9]{4}[.][0-9]{1,2}$/
regexy = /^[0-9]{4}$/
regex_final = Regexp.union(regexymd, regexym)
regex_final = Regexp.union(regex_final, regexy)
validates :data, :format => { :with => regex_final }
希望对和我有同样情况的人有所帮助。谢谢你的回答。我很感激反馈。