首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查变量是否为整数

检查变量是否为整数
EN

Stack Overflow用户
提问于 2011-01-04 09:36:25
回答 9查看 199.5K关注 0票数 148

Rails 3或Ruby有内置的方法来检查变量是否为整数吗?

例如,

代码语言:javascript
复制
1.is_an_int #=> true
"dadadad@asdasd.net".is_an_int #=> false?
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-01-04 09:41:23

您可以使用is_a?方法

代码语言:javascript
复制
>> 1.is_a? Integer
=> true
>> "dadadad@asdasd.net".is_a? Integer
=> false
>> nil.is_a? Integer
=> false
票数 292
EN

Stack Overflow用户

发布于 2011-01-04 09:40:34

对字符串使用正则表达式:

代码语言:javascript
复制
def is_numeric?(obj) 
   obj.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
end

如果想要检查变量是否为某种类型,可以简单地使用kind_of?

代码语言:javascript
复制
1.kind_of? Integer #true
(1.5).kind_of? Float #true
is_numeric? "545"  #true
is_numeric? "2aa"  #false
票数 30
EN

Stack Overflow用户

发布于 2013-08-08 04:47:40

如果您不确定变量的类型(它可以是数字字符的字符串),假设它是传递给params的信用卡号码,那么它最初将是一个字符串,但您希望确保其中不包含任何字母字符,我将使用以下方法:

代码语言:javascript
复制
    def is_number?(obj)
        obj.to_s == obj.to_i.to_s
    end

    is_number? "123fh" # false
    is_number? "12345" # true

@Benny指出了这种方法的疏忽,请记住这一点:

代码语言:javascript
复制
is_number? "01" # false. oops!
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4589968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档