加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何确定字符串是否为数字?

发布时间:2020-12-16 20:51:52 所属栏目:百科 来源:网络整理
导读:我觉得这会更容易找到,但我很惊讶它不是. 我如何测试一个字符串是否是模型外的数字(包括小数)? 例如 is_number("1") # trueis_number("1.234") # trueis_number("-1.45") # trueis_number("1.23aw") #false 在PHP中,有is_numeric,但我似乎无法在Ruby(或Rail
我觉得这会更容易找到,但我很惊讶它不是.

我如何测试一个字符串是否是模型外的数字(包括小数)?

例如

is_number("1") # true
is_number("1.234") # true
is_number("-1.45") # true
is_number("1.23aw") #false

在PHP中,有is_numeric,但我似乎无法在Ruby(或Rails)中找到等价物.

到目前为止,我已经阅读了以下答案,并且没有更接近:

> Ruby on Rails – Validate a Cost
> Ruby/Rails – How can you validate against decimal scale?
> invalid decimal becomes 0.0 in rails

解决方法

您可以借用 NumericalityValidator Rails用于验证数字的想法,它使用 Kernel.Float方法:
def numeric?(string)
  # `!!` converts parsed number to `true`
  !!Kernel.Float(string) 
rescue TypeError,ArgumentError
  false
end

numeric?('1')   # => true
numeric?('1.2') # => true
numeric?('.1')  # => true
numeric?('a')   # => false

它还处理以科学记数法书写的符号,十六进制数字和数字:

numeric?('-10')   # => true
numeric?('0xFF')  # => true
numeric?('1.2e6') # => true

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读