密码强度正则表达式–必须包含⼤写字母,⼩写字母和数字,⾄少8个字符等
8需要⼀个密码强度正则表达式在⽤户注册时校验⽤户密码强度:密码⾄少8个字符,包括1个⼤写字母,1个⼩写字母和1个数字或特殊字符,例如#,?,!。⽹上搜索了⼀些解决⽅案分享给⼤家。
9
10
11
12⽅案⼀
13
14⾄少8-16个字符,⾄少1个⼤写字母,1个⼩写字母和1个数字,其他可以是任意字符:
15
16 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
17
18或者:
19
20 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/
21
22其中 [\s\S] 中的\s空⽩符,\S⾮空⽩符,所以[\s\S]是任意字符。也可以⽤ [\d\D]、[\w\W]来表⽰。
23
24⾄少8个字符,⾄少1个⼤写字母,1个⼩写字母和1个数字,不能包含特殊字符(⾮数字字母):
25
26 ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
27
28⾄少8个字符,⾄少1个字母,1个数字和1个特殊字符:
29
30 ^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
31
32⾄少8个字符,⾄少1个⼤写字母,1个⼩写字母和1个数字:
33
34 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
35
36⾄少8个字符,⾄少1个⼤写字母,1个⼩写字母,1个数字和1个特殊字符:
37
38 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}
39
40最少8个最多⼗个字符,⾄少1个⼤写字母,1个⼩写字母,1个数字和1个特殊字符:
41
42 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}
43
44⽅案⼆
45
46还有,你可以使⽤这个正则表达式:
47
48 ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
49
50这个正则表达式将强制执⾏这些规则:
51
52⾄少1个⼤写字母English letter,(?=.*?[A-Z])
53⾄少1个⼩写英⽂字母,(?=.*?[a-z])
54⾄少1位数字,(?=.*?[0-9])
55⾄少有1个特殊字符,(?=.*?[#?!@$%^&*-])
56最⼩8个长度.{8,}
57⽅案三
58
59正则表达式没有AND运算符,所以编写正则表达式与有效密码匹配是⾮常困难的,当有效性被某些东西和其他东西等定义时…
60
61但是,正则表达式确实有1个OR运算符,所以只需应⽤DeMorgan的定理,并编写1个与⽆效密码相匹配的正则表达式:
62
63任何少于8个字符或任何没有数字或任何没有⼤写字母或任何没有⼩写字母或任何没有特殊字符的任何东西。
64
65所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的话,这是1个⽆效的密码。
66
67⽅案四
68
69由于特殊字符仅限于键盘中的特殊字符,因此可⽤于任何特殊字符:
70
71 ^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
72
73这个正则表达式将强制执⾏这些规则:
74 – ⾄少1个⼤写英⽂字母
75 – ⾄少1个⼩写英⽂字母
76 – ⾄少1位数字
js正则表达式判断数字77 – ⾄少1个特殊字符
78 – 最少8个长度
79
80⽅案五
81
82根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或[等字符。我对 white-listing 我的特殊字符不感兴趣,所以我⽤[^\w\s]作为测试 – 简单地把⾮字符(包括数字)和⾮空格字符放在⼀起。总⽽⾔之,这是对我有⽤的 83
84⾄少8字符
85⾄少1数字字符
86⾄少1⼩写字母
87⾄少1⼤写字母
88⾄少1特殊字符
89 /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ 简单演⽰涵盖各种情况
90
91⽅案六
92
93导⼊JavaScript⽂件jquery.validate.min.js。
94
95您可以使⽤此⽅法:
96
97 JavaScript 代码:
98 $.validator.addMethod("pwcheck", function (value) {
99return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
100 });
101⾄少1个⼤写英⽂字母
102⾄少1个⼩写英⽂字母
103⾄少1位数字
104⾄少1个特殊字符
105⽅案七
106
107尝试这个:
108 – 最少6个字符
109 – ⾄少有1个⼤写字符
110 – ⾄少1个⼩写字符
111 – ⾄少1个特殊字符
112
113表达式:
114
115 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/
116
117可选特殊字符:
118
119⾄少1个特殊字符
120⾄少1个数字
121特殊字符是可选的
122最少6个字符,最多16个字符
123表达式:
124
125 /^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/
126
127如果不需要最⼩和最⼤条件,则删除.{6, 16} 128 – 6是最⼩字符数限制
129 – 20是最⼤字符限制
130 – ?=表⽰匹配表达式