我不明白为什么我的正则表达式不起作用。任何密码始终都有错误消息。
$this->add('password', new RegexValidator(array(
'pattern' => '.{0}|.{4,}',
'message' => '0 or 4 char minimum'
)));
错误是:最少0或4个字符。
答案 0 :(得分:1)
只需将StringLenght验证与allowEmpty
选项结合使用:
$badPassMessage = 'Define a password using exactly 4 characters or leave it empty!';
$validation->add('password', new StringLength(array(
'max' => 4,
'min' => 4,
'allowEmpty' => true,
'messageMaximum' => $badPassMessage,
'messageMinimum' => $badPassMessage
)));
奖金
我建议您始终使用这个出色的工具测试您的模式:
始终确保正则表达式风格设置为pcre (php)
。