目次

入力フィルター

ウィジェットには、入力値を事前に加工してから取り込むためのフィルタ機能があります。たとえば、入力文字列から前後の空文字を取り除くのは、多くの場合有用でしょう。

フィルタは、ウィジェットのコンストラクタで以下のように指定します。

@form = AlForm.new(
  AlText.new( "text1", :filter=>フィルタ名 ),
  ...

標準で用意しているフィルタは、文字列から前後の空文字を取り除くフィルタのみで、AlForm::FILTER_STRIP で定義しています。

 AlText.new( "text1", :filter=>AlForm::FILTER_STRIP )

フィルタの作り方

Procオブジェクトもしくはlambdaを使います。

前後の空白を取り除くフィルタ例

FILTER_STRIP = Proc.new {|s| s.strip }

全角文字を半角文字に変換するフィルタ例

FILTER_ZENHAN = Proc.new {|s| s.tr('0-9a-zA-Z','0-9a-zA-Z')}

複数のフィルタを適用

全角半角変換をしてから前後の空白を取り除くなど、複数のフィルタを連続して適用したい場合は、配列で指定します。

AlText.new( "text1", :filter=>[ FILTER_ZENHAN, FILTER_STRIP ] )