2017-07-18 76 views
-1

我有一個正則表達式查詢密碼驗證,規則是密碼必須在8-15個字符之間,1個數字+ 1個特殊字符。它在網絡表單中完美運行。正則表達式查詢,描述

我只需要充分理解它。如果任何人都可以幫助我按組描述這個正則表達式組,那麼這對我會有很大的幫助。我理解某些部分,但不是全部。

^(?=.*[0-9])(?=.*[[email protected]#$%^&*])[[email protected]#$%^&*]{7,15}$ 
+0

顯示的正則表達式不會做你說的那樣。它還需要至少一個小寫字母和一個大寫字母。看看[正則表達式指南](https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions)並閱讀關於lookahead的內容。 – nnnnnn

+0

有一個很酷的正則表達式測試網站:[regex101](https://regex101.com/r/vsNNwO/1)。你可以在右邊看到'解釋'。 – AlexM

+0

對不起,我更新了正則表達式。 – raju

回答

1

既然你更新的正則表達式...

^(?=.*[0-9])(?=.*[[email protected]#$%^&*])[[email protected]#$%^&*]{7,15}$

^(?=.*[0-9])從字符串的開始,匹配任何數字。如果沒有任何匹配,前瞻?=將阻止正則表達式繼續。

(?=.*[[email protected]#$%^&*])匹配組中的任何特殊字符。

[[email protected]#$%^&*]捕獲所有字母,數字和特殊字符。至少7到15,直到線路結束。

+0

你是什麼意思由「這並不證實有一個數字。「?它實際上是,不是嗎? – AlexM

+0

'(?= ...)'是一個前瞻,而不是一個捕獲組。 – nnnnnn

+0

這個正則表達式會檢查特殊字符和數字的存在。我檢查了我的JS代碼。 – raju