我有一个字符串"1234223"
,我想检查该值是否为整数/数字。
我怎样才能在一行中做到这一点?
我努力了
1 =~ /^\d+$/
=> nil
"1a" =~ /^\d+$/
=> nil
两条线都返回零
我有一个字符串"1234223"
,我想检查该值是否为整数/数字。
我怎样才能在一行中做到这一点?
我努力了
1 =~ /^\d+$/
=> nil
"1a" =~ /^\d+$/
=> nil
两条线都返回零
如果您尝试保持与原始帖子相似的语义,请使用以下任一方法:
"1234223" =~ /\A\d+\z/ ? true : false
#=> true
!!("1234223" =~ /\A\d+\z/)
#=> true
使用 Ruby 2.4 的新Regexp#match 的更惯用的构造?返回布尔结果的方法也会做同样的事情,同时看起来也更干净一些。例如:
"1234223".match? /\A\d+\z/
#=> true
怎么样Integer("123") rescue nil
?
您可以使用regex
"123".match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
它还将检查decimals
.
"1234223".tap{|s| break s.empty? || s =~ /\D/}.!