Javascript 用于密码强度的正则表达式不起作用
我需要显示密码强度,同时创建新的用户帐户,所以我有以下标准Javascript 用于密码强度的正则表达式不起作用,javascript,regex,Javascript,Regex,我需要显示密码强度,同时创建新的用户帐户,所以我有以下标准 少于8个字符->太短 仅8到15个字符的字母(大写和小写)或数字->弱 8到15个字符的字母表(大写和小写)和至少一个数字->中等 8到15个字符的字母表(大写和小写),以及至少一个数字和至少一个特殊字符->strong 我正在javascript中尝试使用以下正则表达式 /^.{1,7}$/, //Too Short /^([a-zA-Z]{8,15})$/, //Weak /^(?=.*\d)(?=.*[a-zA-Z]).{8,
- 少于8个字符->太短
- 仅8到15个字符的字母(大写和小写)或数字->弱
- 8到15个字符的字母表(大写和小写)和至少一个数字->中等
- 8到15个字符的字母表(大写和小写),以及至少一个数字和至少一个特殊字符->strong
/^.{1,7}$/, //Too Short
/^([a-zA-Z]{8,15})$/, //Weak
/^(?=.*\d)(?=.*[a-zA-Z]).{8,15}$/, //Moderate
/^([a-zA-Z0-9@\!_#\$\^%&*()+=\-[]\\\';,\.\/\{\}\|\":<>\? ]{8,15})$/] //Strong
/^.{1,7}$/,//太短
/^([a-zA-Z]{8,15})$/,//弱
/^(?=.*\d)(?=.[a-zA-Z])。{8,15}$/,//中等
/^([a-zA-Z0-9@!#$\^%&*(++=\-[]\\\',\.\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\”:\?]{8,15})$/]///Strong
但是它们不起作用。请帮我处理上面的正则表达式。您的模式有一些问题。您似乎要测试一周,然后测试强密码。但是,您的模式使用的是字符类。因此,这意味着提供的任何字符都可以工作。“强”密码理论上可以是aaaaaaaa“因为它至少有8个字符长,并且适合字符类的
a-z
部分。您还有一个语法错误。您的序列以]{8,15}$/]
结尾,看起来您的意思是]{8,15}$/
。另一个语法错误是您的[]
在字符类中。它们必须是\[\]
最后,我建议你仔细阅读“.”,它将大大简化你的模式。例如,你可以将
a-z
,a-z
,0-9
,和\w
(单词字符)交换掉在您的角色类中。如果您为每个“规则”创建一个正则表达式,则可能更容易推理并向用户提供反馈
您必须对其进行一系列检查:
^.{1,7}$
太短
^[a-zA-Z]{8,15}$
或^\d{8,15}$
弱
^[a-zA-Z\d]{8,15}$
中等
^[a-zA-Z\d\W]{8,15}$
strongDefine不起作用
?没有得到验证可能你应该选择一个更强的密码谢谢你的帮助,我对正则表达式知之甚少。所以如果你能帮我为上述条件使用合适的正则表达式,那将是很有帮助的。@user3275493不幸的是,我现在不能(我只能在这里或那里插话,因为我是在工作中插话的)。我建议浏览一下我链接的页面,试着了解正则表达式是如何工作的。然后将每个问题分成几个部分,在自己尝试之后,就这些特定的主题寻求帮助。为了让你开始,这里有一个问题你可以搜索(或者,如果您找不到,您可以开始一个新问题):“如何在正则表达式模式中使用多个字符类?”或“如何检查每个字符类是否在正则表达式模式中使用?”这里有部分答案。@user3275493,这是您如何开始检查多个类并检查每个类是否匹配的方法。
var rules = [
[/[a-z]/, 'must include lower case letter'],
[/[A-Z]/, 'must include upper case letter'],
[/\d/, 'must include number'],
[/[^\w\d]/, 'must include punctuation character'],
[/^.{8,15}$/, 'must be 8 to 15 digits'],
[/(.)\1+/, 'characters cannot be repeated'] ];