スニペット"FormLister":フィールドの検証(チェック)内容を設定

フィールドの検証(チェック)内容を設定するには、&rulesパラメーターを使用します。

構文

ルールは次のようなJSON形式で指定します。

プロパティまたは値 説明
フィールド名 ルールを割り当てるフィールドの名称。
検証名 フィールドの検証する種類。
エクスクラメーションマーク(!)を先頭に付けることで検証判定を逆にすることができる。
例:"!required" : "..."
種類については 検証の種類を参照。
メッセージ 検証によって問題あり(エラー)と判定された場合に表示する文章。
詳細設定 検証する種類によって詳細に設定する必要のある場合の内容。
paramsプロパティmessageプロパティによって指定する。
{
    "params" : 検証値,
    "message" : メッセージ
}

設定内容については 検証の種類の説明と指定例の欄を参照。

検証の種類

検証名 説明 指定例
required フィールドの値が入力あるいは選択されているか(空でないか)検証。 "username" : {
    "required" : "ユーザー名を入力してください。"
}
alpha フィールドの値が全てアルファベットか検証。 "code" : {
    "alpha" : "指定可能な文字列はアルファベットです。"
}
numeric フィールドの値が全て数字か検証。 "age" : {
    "numeric" : "指定可能な文字列は数字です。"
}
alphaNumeric フィールドの値が全てアルファベットまたは数字か検証。
ハイフンやアンダースコアなどはエラーとなる。
"username" : {
    "alphaNumeric" : "指定可能な文字列はアルファベットまたは数字です。"
}
email フィールドの値がメールアドレスの形式か検証。 "email" : {
    "email" : "メールアドレスアドレスの形式で入力してください。"
}
url フィールドの値がURLの形式か検証。 "website" : {
    "url" : "URLの形式で入力してください。"
}
phone フィールドの値が全て数字またはハイフンか検証。
使われている文字列を判定するのみで00-0000-0000のような形式の判定は行わない。
"tel" : {
    "phone" : "指定可能な文字列は数字またはハイフンです。"
}
date フィールドの日付の値がparamsプロパティで指定した書式に一致するか検証。
PHPのDateTime::createFromFormatメソッドの指定可能な書式を指定する。
DateTime::createFromFormat
"scheduled_date" : {
    "date" : {
        "params" : "Y/m/d",
        "message" : "¥"YYYY/MM/DD¥"という形式で指定してください。"
    }
}
matches フィールドの値がparamsプロパティで指定した正規表現に一致するか検証。 "scheduled_date" : {
    "date" : {
        "params" : "/^\\d{3}-\\d{4}|\\d{7}$/",
        "message" : "¥"YYYY/MM/DD¥"という形式で指定してください。"
    }
}
in フィールドの値がparamsプロパティ配列内に存在するか検証。 "select_type" : {
    "in" : {
        "params" : [ ["foo", "bar", "baz"] ],
        "message" : "foo、bar、bazのいずれかを入力してください。"
    }
}
equals フィールドの値とparamsプロパティで指定した値とが一致するか検証。
なお、パスワードのフィールドである"password"と"repeatPassword"が存在すれば、paramsプロパティの指定をせずに比較することが可能。
"pass" : {
    "equals" : {
        "params" : "foo",
        "message" : "正しい値を入力してください。"
    }
}
min フィールドの値(数字)がparamsプロパティの値以上であるか検証。 "num" : {
    "min" : {
        "params" : 3,
        "message" : "3以上で入力してください。"
    }
}
max フィールドの値(数字)がparamsプロパティの値以下であるか検証。 "num" : {
    "max" : {
        "params" : 10,
        "message" : "10以下で入力してください。"
    }
}
greater フィールドの値(数字)がparamsプロパティの値を超えているか検証。 "num" : {
    "greater" : {
        "params" : 3,
        "message" : "3より大きい値で入力してください。"
    }
}
less フィールドの値(数字)がparamsプロパティの値未満であるか検証。 "num" : {
    "less" : {
        "params" : 10,
        "message" : "10未満で入力してください。"
    }
}
between フィールドの値(数字)がparamsプロパティの範囲内(以上/以下)であるか検証。 "num" : {
    "between" : {
        "params" : [3, 10],
        "message" : "3以上、10以下で入力してください。"
    }
}
length フィールドの値がparamsプロパティの文字数(長さ)であるか検証。 "employee_num" : {
    "length" : {
        "params" : 10,
        "message" : "10文字で入力してください。"
    }
}
minLength フィールドの値がparamsプロパティの文字数(長さ)以上であるか検証。 "comment" : {
    "minLength" : {
        "params" : 100,
        "message" : "100文字以上で入力してください。"
    }
}
maxLength フィールドの値がparamsプロパティの文字数(長さ)以下であるか検証。 "comment" : {
    "maxLength" : {
        "params" : 800,
        "message" : "800文字以下で入力してください。"
    }
}
lengthBetween フィールドの値がparamsプロパティの範囲内(以上/以下)文字数(長さ)であるか検証。 "comment" : {
    "lengthBetween" : {
        "params" : [100, 800],
        "message" : "100文字以上、800文字以下で入力してください。"
    }
}
minCount 選択されているフィールドの数がparamsプロパティの数以上選択されているか検証。
最小値は1であり、0を指定し選択していない場合はエラーとなる。
"know" : {
    "minCount" : {
        "params" : 2,
        "message" : "2つ以上選択してください。"
    }
}
maxCount 選択されているフィールドの数がparamsプロパティの数まで選択されているか検証。
ただし選択されていない場合はエラー扱い。
"know" : {
    "maxCount" : {
        "params" : 2,
        "message" : "2つまで選択してください。"
    }
}
countBetween 択されているフィールドの数がparamsプロパティの範囲内(以上/以下)であるか検証。 "know" : {
    "countBetween" : {
        "params" : [2, 5],
        "message" : "2~5つの範囲で選択してください。"
    }
}
custom 外部で定義された検証を実行する。
functionプロパティは実行するメソッドを指定する。
paramsプロパティは引数として渡す値を指定する。
詳しくは 外部の検証(チェック)を実行/定義(カスタマイズ)を参照。
"username" : {
    "custom" : {
        "function" : "\\FormLister\\Register::uniqueUsername",
        "message" : "利用できないユーザー名です。"
    }
}

サンプルコード

フィールドについては次のページをご覧ください。
フォームやメールで使用するフィールド

CMS「Evolution CMS」逆引きリファレンス一覧へ戻る