您现在的位置是: 网站首页> PHP PHP

多种密码正则验证规则

杨二桃 2021-06-23 PHP 1396人已围观

简介多种密码正则验证规则

第一种

至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/ 

其中 [\s\S] 中的\s空白符,\S非空白符,所以[\s\S]是任意字符。也可以用 [\d\D]、[\w\W]来表示。

 

至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符(非数字字母):

/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/

 

至少8个字符,至少1个字母,1个数字和1个特殊字符:

/^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$/

 

至少8个字符,至少1个大写字母,1个小写字母和1个数字:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/

 

至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}/

 

最少8个最多十个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}/

 

第二种

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/

 

至少1个大写字母English letter,(?=.*?[A-Z])

至少1个小写英文字母,(?=.*?[a-z])

至少1位数字,(?=.*?[0-9])

至少有1个特殊字符,(?=.*?[#?!@$%^&*-])

最小8个长度.{8,}

 

第三种

正则表达式没有AND运算符,所以编写正则表达式与有效密码匹配是非常困难的,当有效性被某些东西和其他东西等定义时…

但是,正则表达式确实有1个OR运算符,所以只需应用DeMorgan的定理,并编写1个与无效密码相匹配的正则表达式:

任何少于8个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何东西。

/^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$/

所以如果有什么匹配的话,这是1个无效的密码:

 

第四种

由于特殊字符仅限于键盘中的特殊字符,因此可用于任何特殊字符:

/^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$/

 

这个正则表达式将强制执行这些规则:

– 至少1个大写英文字母

– 至少1个小写英文字母

– 至少1位数字

– 至少1个特殊字符

– 最少8个长度

 

第五种

根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或[等字符。我对 white-listing 我的特殊字符不感兴趣,所以我用[^\w\s]作为测试 – 简单地把非字符(包括数字)和非空格字符放在一起。总而言之,这是对我有用的

 

至少8字符

至少1数字字符

至少1小写字母

至少1大写字母

至少1特殊字符

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

简单演示涵盖各种情况

 

第六种

尝试这个:

– 最少6个字符

– 至少有1个大写字符

– 至少1个小写字符

– 至少1个特殊字符

表达式:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/

 

可选特殊字符:

至少1个特殊字符

至少1个数字

特殊字符是可选的

最少6个字符,最多16个字符

表达式:

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

 

如果不需要最小和最大条件,则删除.{6, 16}

– 6是最小字符数限制

– 20是最大字符限制

– ?=表示匹配表达式

很赞哦! ({{ infoItems.like }})