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
我正在javascript中尝试使用以下正则表达式

/^.{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}$
strong

Define
不起作用
?没有得到验证可能你应该选择一个更强的密码谢谢你的帮助,我对正则表达式知之甚少。所以如果你能帮我为上述条件使用合适的正则表达式,那将是很有帮助的。@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'] ];