正则表达式检查PHP中的有效正则表达式模式

时间:2011-09-02 06:38:21

标签: php regex

我正在尝试在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')    

1 个答案:

答案 0 :(得分:0)

据我所知,您需要将regexp封装到机箱字符中,例如| 所以你的检查数组就像

array('Type'=>'Regex','Var'=>$_POST['test'], 'Expression'=>'|[A-Za-z]{1,20}$|','Msg'=>'Expression does not match')  

你也可以在函数中定义字符,但是在这种情况下如果你在regexp中有这个字符,你需要将其转义