2017-10-08 21 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。