PHP常用密码正则匹配验证


第一种

//昵称2-10位字符,需由中文、数字、字母(区分大小写)和下划线组合
$a = '的方';
$b = preg_match( "/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]{2,10}$/u", $a );
var_dump( $b );

第二种:

//正则表达式6-16位字符(英文/数字/符号)三种组合
$pwd = 'ddddddA1';
$res = preg_match('/(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}/', $pwd);
var_dump( $res );

第三种:

//正则表达式8-16位字符(英文/数字/符号)至少两种或下划线组合
$pwd = 'dddee1d';
$res = preg_match('/^(\w*(?=\w*\d)(?=\w*[A-Za-z])\w*){8,16}$/', $pwd);
var_dump( $res );

密码长度至少 6 位,必须包含有大写字母、小写字母、数字

function isPassword( $password )
{
    return preg_match( '/(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*\s).{6,}/', $password );
}
PHP代码
$uppercase = preg_match('#[A-Z]#', $password);
$lowercase = preg_match('#[a-z]#', $password);
$number    = preg_match('#[0-9]#', $password);
$special   = preg_match('#[\W]{2,}#', $password); 
$length    = strlen($password) >= 8;
if(!$uppercase || !$lowercase || !$number || !$special || !$length) {
  $errorpw = 'Bad Password';

超强的密码

^(?=.{8})(?=.*[A-Z])(?=.*[a-z])(?=.*\d.*\d.*\d)(?=.*[^a-zA-Z\d].*[^a-zA-Z\d].*[^a-zA-Z\d])[-+%#a-zA-Z\d]+$
添加特殊字符集将持续[...]在上述正则表达式(我放在那里,现在只是- +%#)。

说明:

^                              - beginning of line/string
(?=.{8})                       - positive lookahead to ensure we have at least 8 chars
(?=.*[A-Z])                    - ...to ensure we have at least one uppercase char
(?=.*[a-z])                    - ...to ensure we have at least one lowercase char
(?=.*\d.*\d.*\d)                - ...to ensure we have at least three digits
(?=.*[^a-zA-Z\d].*[^a-zA-Z\d].*[^a-zA-Z\d]) 
                               - ...to ensure we have at least three special chars
                                    (characters other than letters and numbers)
[-+%#a-zA-Z\d]+                - combination of allowed characters
$                              - end of line/string

只允许6到10个字符。它还检查至少一个数字、大小写字母和至少一个特殊字符(字母和数字以外的字符)。

^(?=.*\d)(?=.*?[a-zA-Z])(?=.*?[\W_]).{6,10}$


a

 相关内容