我正在尝试在php中编写验证类并且遇到了麻烦。我使用以下代码检查定义的正则表达式模式的值,但是当我尝试运行脚本时,我收到一条错误消息:
“警告:preg_match()[function.preg-match]:在第109行的C:\ wamp \ www \ valid \ Class.Validate.php中清空正则表达式”
有人能发现我的错误吗?
public function is_regex($var, $expression, $msg)
{
if (trim($var) <> "") {
$Valid = (bool)preg_match($expression, $var);
if ($Valid == false) {
return $msg;
}
}
}
我正在使用它来调用函数
array('Type'=>'Regex','Var'=>$_POST['test'], 'Expression'=>'[A-Za-z]{1,20}$','Msg'=>'Expression does not match')
答案 0 :(得分:0)
据我所知,您需要将regexp封装到机箱字符中,例如| 所以你的检查数组就像
array('Type'=>'Regex','Var'=>$_POST['test'], 'Expression'=>'|[A-Za-z]{1,20}$|','Msg'=>'Expression does not match')
你也可以在函数中定义字符,但是在这种情况下如果你在regexp中有这个字符,你需要将其转义