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 );
/**
* 验证用户名称
* @param $str
* @return string
*/
function checkStr($str)
{
$output='';
$strlen = mb_strlen($str,'UTF-8');
$a=preg_match('/['.chr(0xa1).'-'.chr(0xff).']/', $str);
$b=preg_match('/[0-9]/', $str);
$c=preg_match('/[a-zA-Z]/', $str);
if($strlen < 4 || $strlen > 12)
$output='长度不合法';
elseif($a && $b && $c)
$output='汉字数字英文的混合字符串';
elseif($a && $b && !$c)
$output='汉字数字的混合字符串';
elseif($a && !$b && $c)
$output='汉字英文的混合字符串';
elseif(!$a && $b && $c)
$output='数字英文的混合字符串';
elseif($a && !$b && !$c)
$output='纯汉字';
elseif(!$a && $b && !$c)
$output='纯数字';
elseif(!$a && !$b && $c)
$output='纯英文';
return $output;
}