验证密码
我试图验证密码使用JavaScript,它是为了确保在更改密码时,输入的新密码等于重新输入新密码的密码(用户被要求输入他们的密码新的密码两次,所以都必须匹配),但在同一时间,我想确保新密码至少6个字符长,我有这些功能分开,但不知道如何将它们结合...谢谢你提前帮助!验证密码
这是我迄今为止...
这是为了确保新密码匹配:
function validatePassword()
{
var new_password = document.getElementById("new_password").value;
var confirm_new_password = document.getElementById("confirm_new_password").value;
<!-- if they match, go to next page -->
if (new_password == confirm_new_password)
{
return true;
}
<!-- if they don't match, an error message is displayed -->
else
{
alert("Passwords do not match.");
}
return false;
}
这是密码的长度:
function validatePassword()
{
if (document.getElementById("new_password").value.length < "5")
{
<!--If pasword is less than 5 characters long, display error message-->
alert("Please ensure your password is at least 6 characters long.");
return false;
}
return true;
}
如何我是否将这两个组合起来形成一个SINGLE函数,其中检查两个新密码以便它们匹配,并检查它们是否长于6个字符?
要结合只是你的两个功能,这会工作:
function validatePassword()
{
var new_password = document.getElementById("new_password").value;
var confirm_new_password = document.getElementById("confirm_new_password").value;
if (new_password.length < 5)
{
<!--If pasword is less than 5 characters long, display error message-->
alert("Please ensure your password is at least 6 characters long.");
return false;
}
else if (new_password != confirm_new_password)
{
alert("Passwords do not match.");
return false;
}
else
{
return true;
}
}
虽然我同意,有更好的方法在那里。而且,请确保你在做服务器端验证,因为客户端验证非常容易跳过。
感谢您的帮助,这是我的学校项目,所以我很新,但感谢您的建议! – user1930227 2013-02-13 12:40:23
@ user1930227 - np,很高兴我们可以提供帮助。但不要太早开始学习最佳实践。祝你好运。 – sgeddes 2013-02-13 12:43:24
有一个小问题,虽然两个密码不匹配,但输入的密码长度超过6个字符时仍可以正常工作,但仍会进行更新。例如:如果new_password = abcdefg(长于6)并且confirm_password = abc(不一样),则密码更新 – user1930227 2013-02-13 12:44:33
林不知道,但你可以叫validatePassword()
内
if (new_password == confirm_new_password)
{
validatePassword();
}
这个功能你有两个选择,要么使这两个功能的单一功能,还是让他们两个单独的功能,并呼吁他们都在提交前/处理你的表格。
if (validatePasswordLength() && validatePasswordsMatch()) {
// Continue
}
我宁愿将这两个函数合并为一个函数,第二个函数来自我拥有的另一个页面。 – user1930227 2013-02-13 12:38:23
你必须尝试这个小而且工作的代码。
if(document.getElementById("new_password").value != document.getElementById("confirm_new_password").value){
alert("Passwords do not match.");
return false;
}
感谢您的帮助,我现在正在工作:) – user1930227 2013-02-13 12:48:16
<script>
function validatePassword()
{
var new_password = document.getElementById("new_password").value;
var confirm_new_password = document.getElementById("confirm_new_password").value;
if (document.getElementById("new_password").value.length < "5")
{
alert("Please ensure your password is at least 6 characters long.");
return false;
}
if (new_password == confirm_new_password)
{
alert("Password no match");
return false;
}
return true;
}
</script>
<form action="" onsubmit="return validatePassword()">
<p>New Password: <input type="password" id="new_password" name="new_password" /></p>
<p>Confirm Password: <input type="password" id="confirm_new_password" name="confirm_new_password" /></p>
<p><input type="submit" value="submit" /></p>
</form>
嗨,感谢您的帮助,但我已修复它:) – user1930227 2013-02-13 13:14:11
仅供参考,Dropbox的发布了他们的密码验证JS和它是迄今为止我见过的最好的 - https://tech.dropbox.com/2012/04/zxcvbn-realistic-password-strength-估计/ – 2013-02-13 12:33:17