在Rails 3中查找字符串str
是否包含正浮点数的最简单方法是什么? (str
不是活动记录模型中的属性)
它应该像这样工作:
str = "123" => true
str = "123.456" => true
str = "0" => true
str = "" => false
str = "abcd" => false
str = "-123" => false
答案 0 :(得分:7)
这是一个想法:
class String
def nonnegative_float?
Float(self) >= 0
rescue ArgumentError
return false
end
end
但是,由于您似乎已经非常了解非负浮点数的含义,因此您也可以将其与Regexp
匹配:
class String
def nonnegative_float?
!!match(/\A\+?\d+(?:\.\d+)?\Z/)
end
end
答案 1 :(得分:0)
您可以将其与正则表达式进行匹配。
str === /^\d+(\.\d+)?$/