« D2 バージョン2.0.3公開 | メイン | rubyで文字数を数えるには? »

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

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

半角と全角が反対なのでは?
あるいは、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」は半角のみです。
「あいう」は全角のみです。

になります。

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/765

コメント (1)

榊祐介:

こんばんは。

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

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年06月26日 23:22に投稿されたエントリーのページです。

ひとつ前の投稿は「D2 バージョン2.0.3公開」です。

次の投稿は「rubyで文字数を数えるには?」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35