我需要在创建新用户帐户时显示密码强度,因此我有以下条件
我正在尝试使用我的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
但他们没有工作。请帮助我使用上面的正则表达式。
答案 0 :(得分:3)
可能更容易推理并向用户提供反馈。
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'] ];
答案 1 :(得分:0)
你的照片有一些问题。你似乎试图测试一周,然后测试一个强密码。但是,您的模式使用的是字符类。这意味着任何提供的字符都可以使用。理想情况下,“强”密码可能是“aaaaaaaa”,因为它至少有8个字符长,适合您角色类的a-z
部分。您还有语法错误。您的序列结束]{8,15})$/]
,看起来您的意思是]{8,15})$/
。另一个语法错误是您在字符类中没有转义[]
。他们需要\[\]
。
最后,我建议阅读“Character Escapes”。它将显着简化您的模式。例如,您可以在角色类中将a-z
,A-Z
,0-9
和_
换成\w
(字符)。
答案 2 :(得分:0)
你必须通过一系列检查来运行它:
^.{1,7}$
太短了
^[a-zA-Z]{8,15}$
或^\d{8,15}$
弱
^[a-zA-Z\d]{8,15}$
中等
^[a-zA-Z\d\W]{8,15}$
强大