ホーム DoRuby 【Ruby】半角/全角バリデータ【Rails】

【Ruby】半角/全角バリデータ【Rails】

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

入力項目には必ずといってもいいほど必要な「バリデーション」。
今回は、「その文字列が半角 or 全角文字のみであるか」というバリデーションをRubyで紹介します。今回の条件は以下の通りです。

半角文字:半角カタカナ、半角英数字、一部の記号(濁点、半濁点など)
全角文字:半角文字でないもの
メールアドレス、URLは除外

では、半角/全角のバリデーションのソース公開☆

KCODE = 'u'

  def self.hankaku?(str)
    return nil if str.nil?
    # 半角のみOKなので、全角が混ざっているとfalseが返る
    unless str.to_s =~ /^[ -~。-゚]*$/
      return false
    end
  return true
  end

  def self.zenkaku?(str)
    return nil if str.nil?
    # 全角のみOKなので、半角が混ざっているとfalseが返る
    unless str.to_s =~/^[^ -~。-゚]*$/
      return false
    end
    return true
  end

このままコピペすれば使えるはずです。
内容は非常に簡単で、正規表現で半角文字列にマッチするか否かを調べているだけです。

今回半角用と全角用を用意したのは、「その文字列が半角 or 全角文字だけで構成されているかどうか」を調べたかったからです。
hankakuメソッドだけでは、文字列が「全角文字と半角文字の混合」なのか「全角文字だけなのか」がわかりません。

では、住所のふりがなの入力チェックなんかに、ぜひ利用してみてください。

記事を共有

最近人気な記事