2017-10-08 133 views
-3

我想要验证密码,其中它应该接受正则表达式或如果循环....用于密码验证

  • 至少2数值,
  • 至少1大写,
  • 至少1小写,
  • 至少1个符号。
  • 而且没有空间。
  • 密码的最小长度应该是8个字符

像下面所示

  • asdA1 @ 2#。
  • 1Aas & 3%A
  • 21asdA @!

数字符号不一定要在一起。

它可以在任何地方,并分离。

+5

“你想要”,好的。但是你是否自己尝试过一些东西? –

+0

小提示:人们很懒。因此,如果您强制他们使用某种类型的密码,他们会很快恼怒,并且比他们使用Pa $$ word1 –

+0

请参阅帮助中的[问](https://stackoverflow.com/help/asking)部分居中并[创建最小,完整和可验证示例](https://stackoverflow.com/help/mcve)。 –

回答

2

你可以使用正则表达式

(?=.*\d.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[&@%#!])[^\s]{8,} 

看到regex101 demo

+0

虽然不重要,但可以通过以下一半步骤完成:https://regex101.com/r/y1Bhbk/1(不过,+1)。 – Jan

0

我会分裂的所有条件来分隔布尔方法,和一个validatePassword方法,将调用一切状况的方法,没有正则表达式。代码应该易读且易于维护。

Tommorow你可能想在条件中改变某些东西,它将很难改变正则表达式,你将不得不再次测试所有的schenarios。