当用户提交表单时,我正在检查空验证和数据验证。
例如:在数据中,第一个字段是名称,我将检查用户是否输入了除字母字符以外的任何其他字符。如果他已输入,则会向他显示错误消息。名称应至少包含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;
}
}
提前致谢!
答案 0 :(得分:3)
preg_match中有拼写错误,您输入$$field
(2x $)而不是$field
,您的正则表达式就可以了:
- a character between a - z (case insensitive)
or
- a digit between 0 - 9
or
- a "space" character.
更新代码以回答@AndriusNaruš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;
}
答案 1 :(得分:2)
你的意思是:
$validate = array("Category"=>$productCategory, "Name" => $productName);
foreach ($validate as $key => $field) {
if (preg_match('/^[\w\d]{4,20}$/i',$field)) {
echo $error .= $field;
}
}