密码的正则表达式

需求:
1、长度8~16位;
2、数字、字母、符号至少包含两种。

((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))^.{8,16}$

解释:
^.{8,16}$ # 密码长度为8~16位
((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z])) # 数字、字母、符号至少包含两种。
数字、字母、字符至少包含两种,可分为4种情况:数字字母,数字符号,字母符号,数字字母符号
(?=.*\d)(?=.*\D) # 必须包含数字和非数字(包括:数字字母,数字符号,数字字母符号)
|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]) # 或者必须包含字母和非字母(包括:字母数字,字母符号,字母数字符号)

猜你喜欢

转载自youyang-java.iteye.com/blog/2290644