Rails 3或Ruby有内置的方法来检查变量是否为整数吗?
例如,
1.is_an_int #=> true
"dadadad@asdasd.net".is_an_int #=> false?
发布于 2011-01-04 09:41:23
您可以使用is_a?
方法
>> 1.is_a? Integer
=> true
>> "dadadad@asdasd.net".is_a? Integer
=> false
>> nil.is_a? Integer
=> false
发布于 2011-01-04 09:40:34
对字符串使用正则表达式:
def is_numeric?(obj)
obj.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
end
如果想要检查变量是否为某种类型,可以简单地使用kind_of?
1.kind_of? Integer #true
(1.5).kind_of? Float #true
is_numeric? "545" #true
is_numeric? "2aa" #false
发布于 2013-08-08 04:47:40
如果您不确定变量的类型(它可以是数字字符的字符串),假设它是传递给params的信用卡号码,那么它最初将是一个字符串,但您希望确保其中不包含任何字母字符,我将使用以下方法:
def is_number?(obj)
obj.to_s == obj.to_i.to_s
end
is_number? "123fh" # false
is_number? "12345" # true
@Benny指出了这种方法的疏忽,请记住这一点:
is_number? "01" # false. oops!
https://stackoverflow.com/questions/4589968
复制相似问题