rwy*_*and 10 javascript regex passwords
我需要使用具有以下要求的javascript匹配密码字段的正则表达式:
我有一个正则表达式来处理大多数情况:
/^.*(?=.{15,})(?=.{2,}\d)(?=.{2,}[a-z])(?=.{2,}[A-Z])(?=.{2,}[\!\@\#\$\%\^\&\*\-]).*$/
Run Code Online (Sandbox Code Playgroud)
这里的问题是符号,它适用于:
Run Code Online (Sandbox Code Playgroud)P@ssw0rdP@ssw0rd Pssw0rdPssw0rd@@ Pssw0rd@@Pssw0rd
但不是:
Run Code Online (Sandbox Code Playgroud)@@Pssw0rdPssw0rd
我有一个随机密码生成器设置详尽测试这个,所以任何想法都非常感谢.谢谢!
ken*_*ytm 16
/^(?=(?:.*[a-z]){2})(?=(?:.*[A-Z]){2})(?=(?:.*\d){2})(?=(?:.*[!@#$%^&*-]){2}).{15,}$/
Run Code Online (Sandbox Code Playgroud)
你的前瞻是错误的.模式
(?=.{2,}[class])
Run Code Online (Sandbox Code Playgroud)
表示匹配2个或更多字符(无论是什么字符),然后是所需类的1个字符.这与您指定的"所需类别的2个或更多字符"完全不同.
要正确测试文本中是否包含所需类的字符,请使用
(?=.*[class])
Run Code Online (Sandbox Code Playgroud)
并且由于您要检查两次,请重复该模式
(?=.*[class].*[class])
# equivalent to (?=(?:.*[class]){2})
Run Code Online (Sandbox Code Playgroud)