2011-07-06

Railsで全角だけ入力できるようにするvalidate

railsさんで全角しか入力できないようにするためのvalidateです。

こんな感じです。
validates_format_of :zendake, :with=> /^[^ -~。-゜]*$/,:message => "全角で入力してください。"
全角しか入力できないというよりも、半角はダメって感じです。

なんで上記で半角をあらわせるかは
http://ash.jp/code/codetbl1.htm
をみるとわかります。

2011/07/23追記
試した環境は
ruby 1.8.7
rails 2.3.11
です。
ruby 1.9では半角カタカナがガードできないとコメントをいただきました。


2 件のコメント:

  1. rubyの1.9系で文字の扱いに変更があったためか、1.9系では期待通りの動作にならないようです。

    具体的には全角のひらがなやかたかなが半角カタカナをマッチする部分(。-゜)でマッチされてしまいます。

    必要がなかったため、対処法は調べてません。

    返信削除
  2. コメントありがとうございました!
    1.9系ではダメなのですね・・・

    返信削除