1

我有以下密码验证条件。

  • 密码长度必须至少为八 (8) 个字符。
  • 密码必须同时包含字母和数字字符。
  • 密码不能有重复字符(例如 AA、aa、00、11 等)。

我尝试使用以下正则表达式,但缺少重复字符。
有什么建议么?

var passw = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8}$/;  
4

4 回答 4

2

向前看是你的朋友:

^(?=.*\d)(?=.*[a-zA-Z])(?!.*(.)\1).{8,}
于 2013-11-12T12:19:02.987 回答
2

匹配重复字符的正则表达式是/(.)\1/.
我只是将其作为两步验证进行,无需将其放入一个正则表达式中。
正如评论中指出的那样,这只会降低密码熵,从而降低安全性。

于 2013-11-12T12:15:00.707 回答
1

谢谢..得到答案^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*(.)\1).{8}$

于 2013-11-12T12:27:27.593 回答
1

怎么样

(?>([a-zA-Z])(?!\1)){8,}
于 2013-11-12T12:22:21.823 回答