1

ユーザーがフォームを送信すると、空の検証とデータの検証をチェックしています。

例: データでは、最初のフィールドは名前です。ユーザーが英字以外の文字を入力したかどうかを確認します。入力した場合は、エラー メッセージが表示されます。名前には、最小 4 文字、最大 20 文字を含める必要があります。文字

このコードを使用していますが、正しく動作していません。正規表現を確認する方法。

$validate = array("Category"=>"$productCategory", "Name" => "$productName");

$error = '';

foreach ($validate as $key => $field) {

    if (preg_match('/^[a-z\d ]{4,20}$/i', $$field)) {
       echo $error .= $field;
    }
}

前もって感謝します!

4

2 に答える 2

3

preg_match にタイプミスがあります。$$fieldの代わりに (2x$)と入力する$fieldと、正規表現は問題なく一致します:

 - a character between a - z (case insensitive)
or
 - a digit between 0 - 9
or 
 - a "space" character.

@Andrius Naruševičius コメントに応答するようにコードを更新します。

$validate = array("Category" => $productCategory, "Name" => $productName);
$error = '';
foreach ($validate as $key => $field)
{
    if (preg_match('/^[a-z\d ]{4,20}$/i',$field))
    {
       $error.= $field;
    }
}

if($error)
{
    echo $error;
    exit;
}
于 2012-06-19T07:37:46.327 に答える
2

つまり:

$validate = array("Category"=>$productCategory, "Name" => $productName);

foreach ($validate as $key => $field) {

    if (preg_match('/^[\w\d]{4,20}$/i',$field)) {
       echo $error .= $field;
    }
}
于 2012-06-19T07:38:35.880 に答える