2015-06-14 66 views
0

使用密碼字段。糾正密碼類型字段的正則表達式

正則表達式表達一個字段容器字母(小寫,大寫),數字和一些特殊字符看起來就像這樣:

^([a-z,A-Z,0-9,#,$,%,&,_,]{8,20})*$ 

請告訴我,這個應該怎麼修改,如果我想每一個口令至少要有一個小寫字母,一個大寫字母和一個數字?

例如,對於3個字符長傳,它是:

  • 'AB3' - 通過
  • 'AB3' - 失敗

回答

3

您需要使用向前看符號,你也需要刪除字符類中的所有逗號。

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)[a-zA-Z0-9#$%&_]{8,20}$ 

請注意,密碼必須至少爲8,最長爲20個字符。

DEMO

+0

謝謝。看起來太棒了! – Oleg

0

這個答案已被封存,因爲它吸。

使用+令牌,它告訴引擎試圖找到一個或多個前面的令牌。例如:

^(?=[a-z]+)(?=[A-Z])+(?=[0-9])+(?=[#$%&_\,\.]*)$ 

然後,使用代碼中其他位置的長度檢查來驗證長度。

+0

錨在哪裏?這將允許逗號也.. –

+1

而且它也強制排序不是在問題中。 – Amadan

+0

它已被修改爲允許使用逗號。如果你願意,你可以把它拿出來。 – alexbuzzbee