我是这么写: /\W|[a-z]|[A-Z]/ 比如 "6.6" =~ (/\W|[a-z]|[A-Z]/) 这样写对吗?在 irb 下返回 1,但是在 Rails 里貌似就不对
/\W|[a-z]|[A-Z]/
"6.6" =~ (/\W|[a-z]|[A-Z]/)
Float("6.6") rescue nil
你确定你写的正则是判断合法数字的?
#1 楼 @hooopo 不确定。。。 比如输入的是:3.66abc 这样的怎么判断?
"6.6" =~ /^\d+(.\d+)?$/
$re_float = /[-+]?(?:[0-9]+(.[0-9]*)?|(.[0-9]+))([eE][-+]?[0-9]+)?/
p $re_float =~ "1.23" # => 0 p $&.to_f # => 1.23 p $re_float =~ ".23" # => 0 p $&.to_f # => 0.23 p $re_float =~ "1.23e1" # => 0 p $&.to_f # => 12.3 p $re_float =~ "1.23e-1" # => 0 p $&.to_f # => 0.123
"6.6".to_f.to_s == "6.6"
一楼是作法是可行的呀。
#3 楼 @x290431695 thx #6 楼 @ashchan 恩,可行,是我自己搞错了。