TL::Validator - 値の検証の一括処理
my $validator = $TL->newValidator; $validator->addFilter( { name => 'NotEmpty;NotWhitespace', email => 'NotEmpty;NotWhitespace[NotEmpty];Email', } ); my $error = $validator->check($form);
Formオブジェクト値の検証の一括処理を行う。
$validator = $TL->newValidator
TL::Validator オブジェクトを作成。
$validator->addFilter( { name => 'NotEmpty;NotWhitespace[NotEmpty]', email => 'NotEmpty;NotWhitespace[NotEmpty];Email', password => 'NotEmpty;CharLen(4,8);Password', } )
バリデータにフィルタを設定する。 検証対象となるフォームのキーに対し、フィルタリストを指定する。
フィルタ指定形式としては、
FilterName(args)[message]
を、「;」区切りとする。 「(args)」や、「[message]」は省略可能。 「(args)」を省略した場合は、それぞれのフィルタによりデフォルトのチェックを行う。 「[message]」を省略した場合は、checkの戻り時にフィルタ名を返す。
$error = $validator->check($form)
設定したフィルタを利用して、フォームの値を検証する。
それぞれのフォームのキーに対してエラーがあれば、「[message]」、もしくは指定がない場合はフィルタ名を値としたハッシュリファレンスを返す。 エラーがなければ、そのキーは含まれない。
@keys = $validator->getKeys
現在設定されているフィルタのキー一覧を返す。
値が空(undefまたは0文字)でないことをチェックする。
半角/全角スペース、タブのみ、もしくは空(undefまたは0文字)でないことをチェックする。
文字列が制御コードを除くASCII文字のみで構成されているかチェックする。
文字列が全角文字のみで構成されているかチェックする。
文字列が半角の数字、アルファベット大文字、小文字、記号を 全て最低1ずつ含んでいるかチェックする。
7桁の郵便番号(XXX-XXXX形式)かチェックする。
実在する郵便番号かどうかは確認しない。
電話番号(/^\d[\d-]*\d$/)かチェックする。
数字で始まり、数字で終わり、その間が数字とハイフン(-)のみで構成されていれば電話番号とみなす。
メールアドレスとして正しい形式かチェックする。
但し携帯電話のメールアドレスでは、アカウント名の末尾にピリオドを含んでいる場合がある為、これも正しい形式であるとみなす。
携帯電話キャリアのドメイン名を判別するわけではないため、通常のメールアドレスも正しい形式であるとみなす。
整数で、かつ$min以上$max以下かチェックする。指定値は省略可能。
デフォルトでは、最大最小のチェックは行わなず整数であれば正しい形式であるとみなす。
整数もしくは小数で、かつ$min以上$max以下かチェックする。指定値は省略可能。
デフォルトでは、最大最小のチェックは行わなず、整数もしくは小数であれば正しい形式であるとみなす。
平仮名だけが含まれているかチェックする。
片仮名だけが含まれているかチェックする。
YYYY-MM-DDで設定された日付が実在するかチェックする。
それぞれの形式の画像かチェックする。
画像として厳密に正しい形式であるかどうかは確認しない。
"http://" で始まる文字列かチェックする。
$modeにs を指定した場合、"https://" で始まる文字列も正しい形式とみなす。
"https://" で始まる文字列かチェックする。
バイト数の範囲が指定値以内かチェックする。 指定がない場合はチェックを行わない。
Shift-Jisでのバイト数の範囲が指定値以内かチェックする。指定がない場合はチェックを行わない。
文字数の範囲が指定値以内かチェックする。 指定値がない場合はチェックを行わない。
HTMLタグを含んでいるかチェックする。
文字列が半角スラッシュで終わっているかチェックする。
機種依存文字を含んでいるかチェックする。
値が指定値のいずれかであることをチェックする。指定値がない場合にはいずれにも該当しないとみなす。
指定のフィルタのいずれかに該当するかをチェックする。指定値がない場合にはいずれにも該当しないとみなす。
指定の正規表現に該当するかをチェックする。指定値がない場合には、エラー。
組み込みフィルタに含まれないフィルタを、ユーザーで実装し、組み込むことができる。
TL::Validator::Filterクラスを継承し、doFilterメソッドをオーバーライドする。
doFilterメソッドに渡される引数は、以下の通り。
フィルタオブジェクト自身
チェック対象となる値の配列の参照。
フィルタに与えられる引数。
IniパラメータのValidatorグループに、
フィルタ名 = フィルタクラス名
として指定する。
チェック対象となる値の配列に、'Test'以外の文字列が含まれていればエラー。
package TestFilter; use TL; use base qw{TL::Validator::Filter}; sub doFilter { my $this = shift; my $values = shift; my $args = shift; return grep { $_ ne 'Test' } @$values > 0; }
[Validator] Test = TestFilter
$validator->addFilter( { test => 'Test', } )
Copyright 2006 YMIRLINK Inc. All Rights Reserved.
This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself
このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。
Address bug reports and comments to: tl@tripletail.jp
HP : http://tripletail.jp/
To install TL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm TL
CPAN shell
perl -MCPAN -e shell install TL
For more information on module installation, please visit the detailed CPAN module installation guide.