2013-05-30 74 views
0

我得到了2個密碼字段,稱爲密碼並確認密碼。我設法驗證它以確保密碼必須匹配。但是,我不知道如何將正則表達式添加到密碼字段中以允許它包含至少一個大寫字母和一個數字的6個字符。密碼正則表達式驗證?

這是JavaScript我走到這一步,

<script type="text/javascript" language="javascript"> 

function validatepw() { 
    if (document.register.user_password.value != document.register.user_password_confirm.value) 
    { 
    alert('Passwords did not match!'); 
     return false; 
     }else{ 
     document.register.submit(); 
     return true; 
    } 
    } 
</script> 

,這是我的形式

<form name="register" action="signup.php" onsubmit="return validate_reg()" 
enctype="multipart/form-data" method="post" > 

<table width="600" border="0"> 
<tr><td width="210" height="45">Username*:</td><td> 
<input type="text" size="40" name="userUsername" id="user_username" /></td></tr> 
<tr><td width="210" height="45">Password*:</td><td> 
<input type="password" size="40" name="userPassword" id="user_password"/></td></tr> 
    <tr><td width="210" height="45">Re-type Password:</td><td> 
<input type="password" size="40" name="userPasswordConfirm" 
id="user_password_confirm" onchange="javascript:validatepw()"/></td></tr> 
</table> 
<center><input type="submit" class="button" name="submit" value="register"></center>  
</form> 

誰能告訴如何應用的6個字符,一個大寫字母和一個數字的正則表達式密碼字段。我搜查了很多,無法找到任何與我已有的東西有關的東西。

+0

http://regexlib.com/正則表達式庫,也許你可以在這裏找到一個 – Drahcir

+0

從單個字段的'change'事件提交表單可能是一個壞主意。對於事件處理程序屬性,也沒有必要使用'javascript:'。 (並且內聯事件處理程序也有點難看。) – millimoose

+0

一個相關的提示:在輸入任何內容之前,強制執行密碼驗證規則並不事先告訴用戶這些規則是什麼,使用普通英語。 –

回答

7

有沒有必要嘗試將所有這一切擠進一個正則表達式。

password.match(/[A-Z]/) && password.match(/[0-9]/) && (password.length >= 6) 
+0

什麼是最簡單的方法擠入到我的JavaScript? – munue

+0

單個RegExp有什麼問題? '/ ^(?=。* [A-Z])(?=。* [0-9])。{6} /' –

+4

@RobW灼痛的眼睛?事實上,它幾次難以分辨出它的作用? – millimoose

2

您當然可以使用一個單一的正則表達式這一點,如果你想:

var isValid = /(?=.*\d)(?=.*[A-Z]).{6,}/.test(password) 

(前瞻至少一個數字,前瞻至少一個字母,然後匹配任何東西,6或更多次)