gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:30 24 4
gpt4 key购买 nike

我以为这会更容易找到,但我很惊讶事实并非如此。

究竟如何测试字符串是否为模型外的数字(包括小数)?

例如

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

在 PHP 中,有 is_numeric,但我似乎无法在 Ruby(或 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

关于ruby-on-rails - 如何确定字符串是否为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com