我目前正在尝试为我的某个模型验证名为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/}
答案 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
答案 1 :(得分:0)
您可以尝试使用正则表达式:
(?!00\:00)([0-5][0-9]\:[0-5][0-9])