入力値で条件分岐

半角英数字の3文字以上32文字以下の文字列を"true"として、それ以外は"false"として扱いたかった。
以下のような制御構造の文を書いてみた。これで対応できると考えている。

#!/usr/bin/ruby -Ku

#str = "a"
#str = "ab"
str = "abc"

if str.empty?
  str = "empty"
else
  if str =~ /\A[0-9a-zA-Z]+\z/
    if    str =~ /\A([0-9a-zA-Z]){3,32}\z/; str = "ok!!!"
    elsif str =~ /\A([0-9a-zA-Z]){1,2}\z/;  str = "short strings!!!"
    else                                    str = "logn strings!!!"
    end 
  else
    str = "invalid strings"
  end 
end

puts str 


Loading...
プログラミング言語 Ruby リファレンスマニュアル