为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Ruby测试字符串是否基本上是引号中的整数

如何使用Ruby测试字符串是否基本上是引号中的整数

暮色呼如 2019-08-02 14:26:02
如何使用Ruby测试字符串是否基本上是引号中的整数我需要一个功能is_an_integer,在哪里"12".is_an_integer? 返回true。"blah".is_an_integer? 返回false。我怎么能用Ruby做到这一点?我会写一个正则表达式,但我假设有一个帮助,我不知道。
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您可以使用正则表达式。这是@ janm建议的功能。

class String
    def is_i?
       !!(self =~ /\A[-+]?[0-9]+\z/)
    endend

根据@wich的评论编辑的版本:

class String
    def is_i?
       /\A[-+]?\d+\z/ === self
    endend

如果您只需要检查正数

  if !/\A\d+\z/.match(string_to_check)
      #Is not a positive number
  else
      #Is all good ..continue
  end


查看完整回答
反对 回复 2019-08-02
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

您可以使用Integer(str)并查看它是否会引发:

def is_num?(str)
  !!Integer(str)rescue ArgumentError, TypeError
  falseend

应该指出的是,虽然这确实会返回"01",但它并不适用"09",因为它不是09有效的整数文字。如果这不是您想要的行为,您可以添加10第二个参数Integer,因此该数字始终被解释为基数10。


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 673 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信