我正在尋找一個用於驗證密碼的正則表達式。密碼規則是:尋找至少有一個小寫字母,至少一個大寫字母,至少一個數字和長度在6和14之間的密碼的正則表達式
- 至少一個小寫字母
- 至少一個大寫字母
- 至少一個數位
- 長度和14 6之間
我創建下面的正表達但它不起作用
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,14}$
它接受
- qwerty1
QWERTY1
但不QWERTY
即它滿足僅2條件
- 至少一個數位
- 長度與14之間的6
我正在尋找一個用於驗證密碼的正則表達式。密碼規則是:尋找至少有一個小寫字母,至少一個大寫字母,至少一個數字和長度在6和14之間的密碼的正則表達式
我創建下面的正表達但它不起作用
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,14}$
它接受
QWERTY1
但不QWERTY
即它滿足僅2條件
我不知道這是可能的,但我敢肯定,如果是,它原來很長的複雜的正則表達式的字符串,這是一個錯誤的設計決策。這將是不可維護的,不明確的和非常容易出錯的。
與此同時,這是很容易做到,理解和維護:
function isValid(password)
{
if(password.length < 6 || password.length > 14)
return false;
var valid = { hasLower: false, hasUpper: false, hasDigit: false };
for(var i = 0; i < password.length; i++) {
var c = password[i];
var upperC = c.toUpperCase();
valid.hasLower |= c != upperC;
valid.hasUpper |= c == upperC;
valid.hasDigit |= c >= '0' && c <= '9';
}
return valid.hasLower && valid.hasUpper && valid.hasDigit;
}
alert('"123abcDEF" valid = ' + isValid('123abcDEF'));
alert('"123 DEF" valid = ' + isValid('123 DEF'));
你能解釋一下「| =」是什麼意思嗎? @Amit –
它是一個[按位或分配](https://developer.mozilla。組織/ EN-US /文檔/網絡/的JavaScript /參考/運營/ Assignment_Operators#Bitwise_OR_assignment) – Amit
你不工作是什麼意思?如果它給出錯誤..分享錯誤..如果它失敗的情況下..共享示例:) –
您是否使用任何特定的語言來實現這個或只是正則表達式? – npinti
編輯問題@karthikmanchala –