【发布时间】:2015-07-04 11:49:58
【问题描述】:
我目前正在尝试为我的一个模型验证名为 duration 的基于时间的属性。该属性将接受类似于01:30 的内容作为有效值。目标是有一个 4 位数的时间码(分和秒),两者之间有一个冒号。分钟和秒都限制在59 范围内,并且不能将00:00 作为值。我目前的正则表达式似乎不起作用:
validates :duration, presence: true, format: {with: /A([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]z/}
【问题讨论】:
-
正则表达式不适合测试值的范围。不过,它们对于从字符串中提取值很有用,因此请使用它,然后应用逻辑来查看值是否在范围内。
标签: ruby-on-rails ruby regex activerecord time