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 件のコメント:

匿名 さんのコメント...

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

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

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

VIVAHIRAJ さんのコメント...

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