更多然後一個特殊字符我有正則表達式,測試下面的規則,允許密碼
- 密碼必須至少具有一個字符。
- 密碼必須至少有一個數字。
- 密碼必須至少具有一個字母數字字符。(更多然後一個應該被允許)
我的嘗試是這樣的,
/^([a-zA-Z+]+[0-9+]+[[email protected]#$%^&*])$/
這工作得很好,作爲大多數情況下,除非我添加了更多的字母數字字符。
測試
- 測試[qwer1234]結果[無效]結論傳遞]
- 測試[qwer1234 $]結果[有效]結論傳遞]
- 測試[qwer1234#$]結果[無效]結論失敗]
進行最後的測試應該得到通過,但它失敗。我知道事情是錯的,但無法擺脫正則表達式魔法。我什麼是錯的想法是,
[0-9+] // This + sign shows that you can have more then 1 of that range of numerics
其中,
[[email protected]#$%^&*] // Does not have the + sign
我試過,
[[email protected]#$%^&*+] // Does not have the + sign
[[email protected]#$%^&*]+ // Does not have the + sign
兩人都沒有工作。我錯過了什麼?
有沒有你要擠進這一切的任何合法* *理由一個正則表達式? –
我對你的解釋感到困惑。密碼的部分必須按照您指定的順序來進行嗎?比如,它是否必須是(字母字符)(數字)(特殊字符),還是它可以是每個中至少有一個的任意組合?我也很困惑爲什麼你在'[]'裏面有'+'...... – Ian
如果他們必須按照這個順序,那麼你應該使用:'/ ^([a-zA-Z] + [ 0-9] + [!@#$%^&*] +)$ /'。將'+'放在'[]'之外意味着至少匹配集合中的一個字符。所以至少你可以有'a2&'這樣的東西。將'+'放在'[]'的內部意味着匹配「+」字符。所以在技術上,你可以在你的正則表達式中使用密碼'++ *',它會通過。我認爲它不應該,但... – Ian