如何使用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
红颜莎娜
TA贡献1842条经验 获得超12个赞
您可以使用Integer(str)
并查看它是否会引发:
def is_num?(str) !!Integer(str)rescue ArgumentError, TypeError falseend
应该指出的是,虽然这确实会返回"01"
,但它并不适用"09"
,因为它不是09
有效的整数文字。如果这不是您想要的行为,您可以添加10
第二个参数Integer
,因此该数字始终被解释为基数10。
- 3 回答
- 0 关注
- 673 浏览
添加回答
举报
0/150
提交
取消