请帮我关于preg match验证

时间:2010-10-31 13:04:36

标签: validation

我需要验证密码,它应该具有以下要求:

  1. 密码应至少包含8个字符
  2. 密码应至少包含1个大写,1个小写,1个数字和1个特殊字符
  3. 密码不应具有连续字符(例如12345或abcd)
  4. 请帮我这样做..任何建议都会有很大的帮助。 谢谢

2 个答案:

答案 0 :(得分:0)

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

关于连续字符的事情是,如果其中一个是特殊字符,那么它们实际上不是连续的(在ASCII表中考虑'Z'和'['在彼此旁边)。

在迭代检查所有布尔值是否为真且没有连续字符之后。

答案 1 :(得分:0)

如果真的想要一个正则表达式,你将不得不使用断言:

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

现在,困难的部分是没有连续的角色。我建议使用循环而不是使用正则表达式来实现它(实际上,我不知道如何使用正则表达式执行此操作)。