-3
我需要密碼才能滿足這些要求的Javascript密碼遵守
- 密碼必須包含至少8個單詞字符
- 必須有至少1個數字位數例如3
- 必須至少有2個大寫字符而不是在一個連續的序列
這似乎並不與此
var pos = myPass.value.search(/^([\w.-]{8,})(?=.*\d)((.*?[A-Z]){2,})$/);
3號工作是最難的。
我需要密碼才能滿足這些要求的Javascript密碼遵守
這似乎並不與此
var pos = myPass.value.search(/^([\w.-]{8,})(?=.*\d)((.*?[A-Z]){2,})$/);
3號工作是最難的。
你混合消費和非消費模式將限制量詞來匹配序列的消費模式,而你只是需要檢查如果字符串匹配一些限制性的圖案或沒有。要添加這些限制,您需要預覽。 (?=.*\d)
是你正則表達式的正確部分,其他都不是。
此外,是一個更好的方法來檢查字符串是否匹配。
使用
/^(?=\D*\d)(?=(?:(?:^|[^A-Z]+)[A-Z]){2}).{8,}$/.test(myPass.value)
或者,只允許字母,數字,下劃線,點和連字符的密碼:
/^(?=\D*\d)(?=(?:(?:^|[^A-Z]+)[A-Z]){2})[\w.-]{8,}$/.test(myPass.value)
^^^^^^
詳細:
^
- 串(?=\D*\d)
的開始 - 後弦開始0+非數字(\D*
),必須有一個數字(\d
)(注意,這個先行執行後,正則表達式指數仍處於的字符串的開頭)(?=(?:(?:^|[^A-Z]+)[A-Z]){2})
- 必須有2個序列((?:...){2}
):
(?:^|[^A-Z]+)
- 串或大於大寫字母[A-Z]
其它的一個或多個字符的開始 - 向上percase letter。.{8,}
- 8個或更多ASCII字母和數字,下劃線,點或連字符$
- - 比在斷行序列 [\w.-]{8,}
使用其它任何8個或更多字符的端串。
爲什麼這個問題被低估了那麼多?這不是一個有效的問題嗎?我覺得這個問題頗具挑戰性。 –
'SOmething here1'應該失敗嗎?我想是的,但請澄清。試試'/^(?=\D*\d)(?=(?:(?:[||[AZI]+)[AZ]){2}).{8,}$/.test(myPass。值)'。或者,如果您只打算匹配字母,數字,下劃線,點和連字符,請嘗試使用/ ^(?= \ D * \ d)(?=(?:(?:^ | [^ AZ] +)[AZ ]){2})[\瓦特.-] {8,} $ /。試驗(myPass.value)' –