2017-02-27 99 views
-2

我需要一個使用JavaScript進行密碼驗證的正則表達式,它應該包含至少一個數字和一個特殊符號(* ^%$#@)和多個字母字符。目前我正在使用下面的代碼段,這是行不通的:使用JavaScript進行密碼驗證的正則表達式

/^(?=(.*[a-zA-Z]{2}))(?=.*\d)(?=.*(\*))(?=.*(^))(?=.*(%))(?=.*(#))(?=.*($))(?=.*(@))$/ 

有人可以幫我嗎?

+1

定義 「不工作」 – Li357

+0

https://stormpath.com/blog/5-myths-password-security#1-myth-complexity-trumps-length – Quentin

+0

歡迎堆棧溢出!請閱讀[問],以及如何創建[mcve]。 –

回答

0

將您的所有要求排列爲斷言,然後匹配字符串
(如果斷言得到滿足)。
(?i)^(?=(?:.*[a-z]){2})(?=.*\d)(?=.*[*^%$#@]).+$

(?i)       # In line modifier - case insensitive 
^        # BOS 
(?=       # Assert - at least 2 alpha's 
     (?: .* [a-z]){2} 
) 
(?= .* \d)     # Assert - at least 1 numeric 
(?= .* [*^%$#@])    # Assert - at least 1 special 

.+       # Match all here 
$        # EOS 
+0

謝謝@sln!有效。非常感謝您的意見。 :) –

+0

@HarshitGupta - 不客氣!如果它解決了你的問題,不要忘記接受答案。 – sln