javascript中的length属性工作不正常

javascript中的length属性工作不正常,javascript,html,Javascript,Html,我想限制用户输入6-20个字符范围内的密码。但下面的功能无法正常工作 function validatePass(pwd1, pwd2) { var len = document.getElementById('pwd1').value; if(len.length < 6 || len.length > 20) { pwd1.setCustomValidity('Enter 6-20 characters'); } else if (pwd1.value != pwd2.val

我想限制用户输入6-20个字符范围内的密码。但下面的功能无法正常工作

 function validatePass(pwd1, pwd2)
 {
var len = document.getElementById('pwd1').value;
if(len.length < 6 || len.length > 20)
{ pwd1.setCustomValidity('Enter 6-20 characters');
}
else if (pwd1.value != pwd2.value || pwd1.value == '' || pwd2.value == '' )
{
        pwd2.setCustomValidity('Password incorrect');
  } 
else 
{
    pwd2.setCustomValidity('');
}
}
功能验证过程(pwd1、pwd2)
{
var len=document.getElementById('pwd1')。值;
如果(透镜长度<6 | |透镜长度>20)
{pwd1.setCustomValidity('输入6-20个字符');
}
else if(pwd1.value!=pwd2.value | | pwd1.value=''pwd2.value='')
{
pwd2.setCustomValidity(“密码不正确”);
} 
其他的
{
pwd2.setCustomValidity(“”);
}
}
html代码是:

<h4>Password</h4></td>
<td><input type="password" name="pwd1" size="30" id="pwd1" required placeholder="Enter 6-20 characters"></td></tr>
<tr><td>
<h4>Confirm Password</h4></td>
<td><input type="password" name="pwd2" id="pwd2" size="30" required onfocus="validatePass(document.getElementById('pwd1'), this);" oninput="validatePass(document.getElementById('pwd1'), this);">
</td></tr>
密码
确认密码
在HTML5中,您可以使用属性:

<input type="password" pattern=".{6,20}" name="pwd1" size="30" id="pwd1" required placeholder="Enter 6-20 characters"></td></tr>

尝试使用如下正则表达式:

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{6,20}$
资料来源:

以下是一个完整的示例:

function CheckPassword(inputtxt) 
{ 
var passw = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$/;
if(inputtxt.value.match(passw)) 
{ 
alert('Correct, try another...')
return true;
}
else
{ 
alert('Wrong...!')
return false;
}
}

来源:

如果您不使用它,为什么要发送
pwd1
?还有什么不能正常工作?发生了什么?有点奇怪
pwd1.value!=pwd2.value | | pwd1.value=''| | pwd2.value=''
cuz如果pwd1和pwd2可能不相等,为什么要同时检查两者是否为空?@Bondye,唯一困扰你的是这个代码…?@gdoron不,不是唯一的事。。。。这只是一个评论。。。