我从我无法控制的Feed中提取数据,我需要验证我给出的字符串是否是有效时间。
大多数时候我正确地发送了诸如“2:35”或“15:41”之类的东西,但其他时候它就像“AM”或“PM”(并且没有数字)...所以我最终只是需要忽略这些。
那么,如何验证数据是否有效?
答案 0 :(得分:8)
您可以使用Time.parse()并检查无效时间的ArgumentError异常。
额外的好处是,如果它有效,您还可以使用可用的格式!
答案 1 :(得分:7)
你还没有确切地说明你认为有效的时间(例如你是否应该接受可选的秒数),所以这里有一个猜测:
data =~ /^([01]?[0-9]|2[0-3])\:[0-5][0-9]$/