正規表現で全角のみ、半角のみのチェックを行う方法

元ネタ:正規表現で全角のみ、半角のみのチェックを行う方法

半角と全角が反対なのでは?
あるいは、unless ではなく if では?

def check(value)
  # 半角のみのチェック
  if value =~ /^[ -~。-゚]*$/
    puts "「#{value}」は半角のみです。"
  end

  # 全角のみのチェック
  if value =~ /^[^ -~。-゚]*$/
    puts "「#{value}」は全角のみです。"
  end
end

%w(abc あいう abcあいう).each do |value|
  check(value)
end

を実行すると、

「abc」は半角のみです。
「あいう」は全角のみです。

になります。

コメント

  1. こんばんは。

    御指摘のとおりです。文脈上unlessですね。全角であることをチェックするのは面倒なので「半角でなかったら全角とみなす」です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください