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 回答