【发布时间】:2015-09-29 19:34:49
【问题描述】:
为了让客户帐户更加安全,精心设计的密码是一种很好的做法。这是我用于密码验证的正则表达式字符串。
/^(?=.*[0-9])(?!.*?\d{3})(?=.*[a-zA-Z])(?!.*?[a-zA-Z]{3})(?=.*[~!@#$%^&*()+-?])([a-zA-Z0-9~!@#$%^&*()+-?]{8,})$/
表示:
- 8 个或更多字符。
- 大写字母 A-Z
- 小写字母 a-z
- 特殊字符~!@#$%^&*()+-?
- 这个正则表达式函数是什么?:不得包含最多 3 个连续的字母和/或数字。
数字和/或字母顺序为 3 或更多是不合适的。
例子:
不正常 = efg123!$, abcd567%, xyz789^&, #hijk23456
正常 = ryiiu562@, erty745#, gjnfl45566^
谢谢
【问题讨论】:
-
没有简单的正则表达式。
-
我认为你对你的用户过于苛刻了。用户应对其密码负责。即使您尝试在密码中禁止
12345或abcde,您也无法阻止他们可以想象的所有愚蠢序列。如果您想要更强的密码,请增加最小大小(或禁止美国用户使用圣经节选)。 -
使用第三方库怎么样?可能类似于 dropbox 的 zxcvnb 并测试密码分数...
-
别忘了禁止序列
are you lonesome tonight。 -
您的正则表达式有错误。您的两个字符类中有
+-?,它定义了一个与[+,\-./0123456789:;<=>?]等效的范围。我很确定这不是你的意思。
标签: javascript regex password-protection