HTML入力データのバリデーションValidator::Customは、HTMLフォームのバリデーションを手伝うためのPerlのモジュールです。値のチェックとフィルタリング、エラーメッセージの扱いを簡潔に記述できます。使い方は、きわめて簡単で、複雑なバリデーションの組み合わせにも、柔軟に対応できます。}=====解説Validator::CustomはHTMLフォームのバリデータで、簡潔さとよい柔軟性を備えています。特徴は以下のようになっています。いくつかのチェック関数がデフォルトで利用できます。いくつかのフィルター関数がデフォルトで利用できます。remove_blankなど。あなた自身のチェック関数とフィルター関数を追加することができます。簡潔なバリデーションオブジェクト利用できます。失敗したパラメーターの名前とメッセージを順序を保って保存できます。新しいValidator::Customオブジェクトを作成まず最初にnewメソッドを使って、Validator::Customオブジェクトを作成します。次に、入力データを準備します。次に、validationメソッドを使って、新しいバリデーションオブジェクトを作成します。失敗したパラメーター名とメッセージを保存するための、Validator::Custom::Validationオブジェクトです。}値が、整数であることをチェックするためにintチェック関数を使用することができます。intチェック関数はデフォルトのチェック関数です。チェック関数はcheckメソッドを通して、利用することができます。チェックが成功しなかった場合は、失敗したパラメーターの名前とメッセージを、Validator::Custom::Validationクラスのadd_failedメソッドを使って追加することができます。'trim');左右のスペースを削除するために、trimフィルター関数を使うことができます。'trim');「お気に入り」のそれぞれの値をフィルターするために、filter_eachメソッドを使うことができます。}「お気に入り」のそれぞれの値をチェックするために、check_eachメソッドを使うことができます。デフォルトのチェック関数とフィルター関数を知りたい場合は、「チェック関数」と「フィルター関数」の項目を見て下さい。バリデーションオブジェクトの扱いすべての入力データが正しいことをチェックするにはis_validメソッドを使用します。}もし、ひとつの入力データが正しいかどうかをチェックしたい場合は、is_validメソッドをパラメーターつきで使ってください。}failedメソッドを使って、バリデーションに失敗したすべてのパラメーターの名前を取得できます。$validation->failed;messageメソッドを使って、バリデーションに失敗したパラメーターのメッセージを取得できます。$validation->message('name');messagesメソッドを使って、バリデーションに失敗したすべてのパラメーターのメッセージを取得できます。$validation->messages;messages_to_hashメソッドを使って、バリデーションに失敗したすべてのパラメーターの名前とメッセージを、ハッシュリファレンス形式で取得できます。$validation->messages_to_hash;Validator::Custom::Validationも参考にしてください。必要であれば、add_checkメソッドを使って、自分自身でチェック関数を追加できます。);チェック関数は、みっつの引数をとります。最初の引数は、Validator::Customオブジェクト、二つ目の引数は、チェックするための値、三つ目の引数は、チェック関数への引数。チェック関数は、戻り値として真か偽の値を返す必要があります。必要であれば、add_filterメソッドを使って、自分自身でフィルター関数を追加できます。);フィルター関数は、みっつの引数をとります。最初の引数は、Validator::Customオブジェクト、二つ目の引数は、フィルタリングするための値、三つ目の引数は、フィルター関数への引数。フィルター関数は、フィルタリングの結果を返却する必要があります。チェック関数Validator::Customは、次のデフォルトのチェック関数を持ちます。すべてのチェック関数はcheckメソッドを使って呼び出すことができます。'int');整数値かどうかをチェックする。"abc"もし値の範囲のチェックも行いたいのであれば、次のように書くことができます。'number');値が数値であるかどうかをチェックします。数値というのは、整数と小数を意味します。'a.1';decimal_part_maxオプションを使って、小数部の最大桁数を指定することもできます。'ascii');値がAsciiのグラフィック文字(16進の「21-7e」)であるかをチェックします。一般的には、パスワードの文字をチェックするために利用します。'003']);値が、与えられた複数の値のうちのひとつであるかどうかをチェックします。'005'フィルター関数Validator::Customは次のデフォルトのフィルター関数を持っています。'trim');前後の空白を取り除きます。\t\n\r\f]というASCIIの空白文字だけではなく、ユニコードの空白文字も取り除くことに注意してください。'remove_blank');空文字と未定義の文字を配列のリファレンスから取り除きます。4]メソッドValidator::CustomはObject::Simpleのすべてのメソッドを継承しており、次の新しいメソッドを実装しています。Validator::Custom->new;新しいValidator::Customオブジェクトを生成します。});チェック関数を追加します。);チェック関数は、みっつの引数をとります。最初の引数は、Validator::Customオブジェクト、二つ目の引数は、チェックするための値、三つ目の引数は、チェック関数への引数。チェック関数は、戻り値として真か偽の値を返す必要があります。});フィルター関数を追加します。);フィルター関数は、みっつの引数をとります。最初の引数は、Validator::Customオブジェクト、二つ目の引数は、フィルタリングするための値、三つ目の引数は、フィルター関数への引数。フィルター関数は、フィルタリングの結果を返却する必要があります。$arg);チェック関数を実行します。引数は、チェックをする値です。第二引数は、チェック関数の名前です。第三引数は、チェック関数の引数です。$arg);チェック関数を配列のリファレンスのすべての要素に対して実行します。ひとつ以上の値が不正であれば、check_eachメソッドは偽の値を返却します。引数は、チェックをする値です。これは、配列のリファレンスである必要があります。第二引数は、チェック関数の名前です。第三引数は、チェック関数の引数です。$arg);フィルター関数を実行します。引数は、フィルタリングを行う値です。第二引数は、フィルター関数の名前です。第三引数は、フィルター関数の引数です。$arg);フィルター関数を配列のリファレンスのすべての要素に対して実行します。引数は、フィルタリングを行う値です。これは、配列のリファレンスである必要があります。第二引数は、フィルター関数の名前です。第三引数は、フィルター関数の引数です。サンプルバリデーションを行ういくつかのサンプルを紹介します。}チェックボックス、少なくとも一つが選択されている。}(参考)evalFAQまだValidator::Customの0.xxのバージョンを使用しています。ドキュメントを見たいのですが。Validator::Custom::Document::Version0を見てください。0.xx」の完全なドキュメントです。バージョン1.xxで気をつけなければならない点は何ですか。in_array制約関数はinチェック関数にリネームされています。\t\n\r\f]だけでなく、ユニコード文字列も削除するようになりました。decimal制約関数はnumberチェック関数にリネームされ、簡易化されています。date_to_timepiece制約関数はもう存在しません。代替の方法については、「サンプル」の「日付の文字列をTime::Pieceオブジェクトに変換」を参照してください。datetime_to_timepiece制約関数はもう存在しません。代替の方法については、「サンプル」の「日付時刻の文字列をTime::Pieceオブジェクトに変換」を参照してください。バージョン0.xxの制約関数に対応するチェック関数をどのように作成すればよいですかいくつかのサンプルを見せます。}バージョン0.xxの制約関数に対応するフィルター関数をどのように作成すればよいですかいくつかのサンプルを見せます。木本裕紀(kimoto.yuki@gmail.com)[http://github.com/yuki-kimoto/Validator-Custom]Validator::Customのチェック関数のサンプル「ひらがな」や「かたかな」、メールアドレスのチェックなどの、チェック関数のサンプルはこちらにあります。以前におけるドキュメントは、こちらにあります。以前におけるドキュメントチェック関数のサンプルValidator::Customにおけるバリデーシのためのチェック関数のサンプルをいくつか紹介します。ひらがなとカタカナひらがなとカタカナであることを判定するには以下のような制約関数を登録します。});メールのバリデーションメールのバリデーションは、デフォルトのチェック関数としては準備されていません。必要であればEmail::Valid::Looseをインストールしてから、チェック関数を登録して使うのがよいでしょう。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebスタートアップも。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。このサイトはGiblogで製作されています。