2010-10-31 57 views
0

我需要验证密码,它应该有以下要求:请帮我约预浸匹配验证

  1. 密码长度应该至少有8个字符
  2. 密码应至少有1大写字母,1小写字母,数字,并且一个特殊字符
  3. 密码应该没有继续字符(例如:12345或ABCD)

请帮我做到这一点..任何建议,将是一个很大 帮帮我。 谢谢

+1

“有些人,当遇到一个问题,认为‘我知道,我将使用正则表达式。’现在他们有两个问题。“ – joschi 2010-10-31 13:11:00

回答

0

迭代字符串。如果字符是大写,则将bool isUppercase设置为true ...如果字符是特殊字符,则将bool isSpecialCharacter设置为true。如果这个字符和前一个字符之间的差别是1,那么你有两个连续的字符,你可以停止迭代(然后设置bool hasConsecutiveCharacters为true)。

事情大约连续字符是,如果其中之一是特殊字符那么他们是不是真的连续的(考虑“Z”和“[”是在ASCII表中彼此相邻)。

迭代后,检查是否所有布尔是真实的,有没有连续的字符。

+0

感谢您的建议。 – Mel 2010-10-31 13:44:03

+0

没有必要感谢我,我是为了点和荣耀而做的:)我增加了一个音符。如果这是对您的问题的回答,请考虑将其标记为答案。 – Dialecticus 2010-10-31 14:19:52

0

如果你真的这一个正则表达式,你必须使用断言:

/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[\W\D\S]).{8,}$/ 

现在,最困难的部分是不连续的字符。我建议用循环来做,而不是用正则表达式来做(实际上,我不知道如何用正则表达式来做)。