我有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 :(得分:7)
没有必要尝试将所有这些都压缩成一个正则表达式。
password.match(/[A-Z]/) && password.match(/[0-9]/) && (password.length >= 6)
答案 1 :(得分:2)
如果您愿意,您当然可以使用单个正则表达式:
var isValid = /(?=.*\d)(?=.*[A-Z]).{6,}/.test(password)
(前瞻至少一位数字,预示至少一个字母,然后匹配任何东西,6次或更多次)