【问题标题】:i want some special character in password我想要密码中的一些特殊字符
【发布时间】:2017-03-27 08:39:43
【问题描述】:

我写了

$this->form_validation->set_rules(
    'password',
    'password',
    'required|min_length[4]|max_length[8]|regex_match[/^[a-z0-9]+$/]'
);

但我想要:
密码必须 正好包含 2 特殊字符和 2个大写字母

怎么写?

【问题讨论】:

标签: php mysql codeigniter validation


【解决方案1】:

你可以使用回调函数: 示例:

public function password_check($str)
{
   if (preg_match('#[\W]{2}#', $str) && preg_match('#[A-Z]{2}#', $str)) {
     return TRUE;
   }
   return FALSE;
}

和验证部分:

$this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]|min_length[8]|alpha_numeric|callback_password_check');

【讨论】:

  • 他想要 2 个特殊字符,而不是你取的数字 [0-9]
  • \w 匹配一个单词字符。不是特殊字符
  • \w 任何单词字符(字母、数字、下划线)
  • \W 任何非单词字符在这里检查php.net/manual/en/function.preg-match.php
【解决方案2】:

我可以给你提供一个特殊字符正则表达式:

/[\'.,:;*?~`!@#$%^&+=)(<>{}]|\]|\[|\/|\\\|\"|\|/

祝你好运!

【讨论】:

  • 谢谢,先生,但我只想要 2 个特殊字符和 2 个大写字母,这就是我感到困惑的原因
猜你喜欢
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多