【问题标题】:Phalcon Regex validation password doesn't workPhalcon正则表达式验证密码不起作用
【发布时间】:2015-11-30 15:03:34
【问题描述】:

我不明白为什么我的正则表达式不起作用。任何密码都会出现错误消息。

 $this->add('password', new RegexValidator(array(
           'pattern' => '.{0}|.{4,}',
           'message' => '0 or 4 char minimum'
 )));

错误是:最少 0 或 4 个字符。

【问题讨论】:

  • 错误信息到底是什么?
  • this:最少 0 或 4 个字符。这是我的消息
  • 这是您问题中应该包含的重要信息。评论是临时的。请edit您的问题。
  • 据我所知,您的正则表达式无效,因此它总是失败。您希望正则表达式验证什么 - 0 到 4 个字符?
  • 您不需要正则表达式,emptystrlen 可以完成此操作,并且可能更易于阅读。

标签: php regex validation passwords phalcon


【解决方案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
)));
奖金

我建议您始终使用这款出色的工具测试您的模式:

regular expressions 101

始终确保将正则表达式风格设置为 pcre (php)

【讨论】:

  • 太棒了。 allowEmpty 参数是解决方案。所以现在我可以使用 StringLenght 验证 docs.phalconphp.com/en/latest/api/… 和 allowEmpty 参数。非常感谢!!!!!!
  • 不错不错:)。但我没有使用 max 参数。只需几分钟。
  • @John 您是否测试过是否允许 3 个字符长度的密码?根据我的理解,你不想要这样吗?!我相信默认的min 是 0
猜你喜欢
  • 2011-03-01
  • 2012-11-03
  • 1970-01-01
  • 2015-03-27
  • 2011-05-06
  • 2016-10-19
  • 2011-03-24
相关资源
最近更新 更多