私は文字列"08"
を持っており、この文字列が数値かどうかを知りたいと思っています。 Rails 3.1でどうすればいいですか?これを実行する別の方法は、それを決定するためにルビーためにそれを残すことである文字列が数値かどうかを確認する方法はありますか?
str = "08"
if str =~ /^-?(\d+(\.\d+)?|\.\d+)$/
# string is numeric
else
# string is not
end
私は文字列"08"
を持っており、この文字列が数値かどうかを知りたいと思っています。 Rails 3.1でどうすればいいですか?これを実行する別の方法は、それを決定するためにルビーためにそれを残すことである文字列が数値かどうかを確認する方法はありますか?
str = "08"
if str =~ /^-?(\d+(\.\d+)?|\.\d+)$/
# string is numeric
else
# string is not
end
:
begin
Float(string)
# String is numeric
rescue ArgumentError, TypeError
# String is not numeric
end
+1は創造的な怠惰です。途中で '+ 3'と' 10e6 'を捕まえるために。 –
あなたは正規表現を使用することができますvalidates_format_of :string, :with => /[0-9]/
のような数字を入力できるようにするだけで簡単です。
これはあまりにも複雑に思えます。ちょうど一緒に行かないでください:str =〜/ ^(\ d +)$/ – Forrest
@Forrestこれは10進数なので、あなたの正規表現は一致しません。 –
@Forrest: '/^\ d + $'は負の値にも一致しません。 OTOH、 '/^- ?(\ d +(\。\ d +)?| \。\ d +)$ /'は指数表記と '+ 3 ' –
あなたはユーザー入力にそれを検証するために欠けている場合は
文字列がある場合は文字列です。あなたは何を知る必要がありますか?文字列に数字だけが含まれていれば? – lucapette
あなたがRailsを使っているので、*や*ここで*しようとしているときは重要だと思います。言い換えれば、これはデータベースに値を格納するためですか? –