在Rails中验证分钟和秒

时间:2015-04-25 23:17:13

标签: ruby-on-rails ruby regex activerecord time

我目前正在尝试为我的某个模型验证名为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/}

2 个答案:

答案 0 :(得分:1)

使用否定Django Documentation (?!00:00),正则表达式的其余部分是简单的分钟/秒验证。

/\A(?!00:00)[0-5][0-9]:[0-5][0-9]\Z/
if subject =~ /\A(?!00:00)[0-5][0-9]:[0-5][0-9]\Z/
    # Successful match
else
    # Match attempt failed
end

lookahead

答案 1 :(得分:0)

您可以尝试使用正则表达式:

(?!00\:00)([0-5][0-9]\:[0-5][0-9])