Ruby:如何检查字符串是否有效?

时间:2010-05-11 13:02:52

标签: ruby-on-rails ruby string time

我从我无法控制的Feed中提取数据,我需要验证我给出的字符串是否是有效时间。

大多数时候我正确地发送了诸如“2:35”或“15:41”之类的东西,但其他时候它就像“AM”或“PM”(并且没有数字)...所以我最终只是需要忽略这些。

那么,如何验证数据是否有效?

2 个答案:

答案 0 :(得分:8)

您可以使用Time.parse()并检查无效时间的ArgumentError异常。

额外的好处是,如果它有效,您还可以使用可用的格式!

答案 1 :(得分:7)

你还没有确切地说明你认为有效的时间(例如你是否应该接受可选的秒数),所以这里有一个猜测:

data =~ /^([01]?[0-9]|2[0-3])\:[0-5][0-9]$/