2016-03-08 34 views
-1

我已經在Java應用程序中創建了用於密碼驗證的正則表達式。我創建的正則表達式低於以下要求。用於密碼驗證的Java正則表達式

^[\\p{Alnum}#[email protected]$*&_]{5,12}$ 
  1. 至少5個字符和最多12個字符
  2. 至少包含一個數字
  3. 至少包含一個字符
  4. 可以一組特殊字符的範圍內包含字符(#!@ $ * & _)
  5. 不含空格,製表等

我缺少1和2,如果我給「gjsajhgjhagfj」或「29837846876」,它應該失敗。但沒有發生。

任何人都可以幫忙嗎?

+0

是否有原因將其限制爲最多12個字符?這對我來說似乎不合邏輯。 –

+0

有一個我不能在線分享的原因 –

+0

不用擔心,好處是總有人願意幫忙,不要灰心......只要他表示他已經做了,他就應該得到幫助。一些努力,他沒有達到他想要的,你明確地做了<3 – Enissay

回答

3

您可以使用向前看符號強制條件1 & 2:

^(?i)(?=.*[a-z])(?=.*[0-9])[a-z0-9#[email protected]$*&_]{5,12}$ 

DEMO

(?i)是不敏感的比賽,同爲Pattern.CASE_INSENSITIVE標誌你的編譯功能:

Pattern.compile(regex, Pattern.CASE_INSENSITIVE) 

你可以閱讀更多關於Lookaheads HERE

+0

太棒了!這工作 –