有人可以告诉我为什么这个功能不起作用吗?密码长度和数字检查功能完美配合。但这对大写字母的支票有问题...
function validera() {
var passw = document.getElementById("User-Password").value;
var upper = /[A-Z]/ ;
var number = /[0-9]/;
if (passw.length < 6 || !number.test(passw) || !upper.test(passw)) {
if (passw.length < 6) {
alert("Please make sure password is longer than 6 characters.")
return false;
}
var counter = 0;
var i;
for(i = 0; i < passw.length; i++){
passw.charAt(i)
if(upper.test(passw.charAt(i))){
counter++;
break;
}
}
if( counter < 2 ){
alert("Please make sure password includes 2 capital letters")
return false;
}
if (!number.test(passw)) {
alert("Please make sure Password Includes a Digit")
return false;
}
} else {
alert("Account created")
}
还是我必须使用正则表达式?
答案 0 :(得分:0)
答案 1 :(得分:0)
在这里查看Fiddle
CreateRandomPassword(Length, isUpperAlpha, isLowerAlpha, isNumaric ,SpecialChars)
我开发了简单的密码生成功能
答案 2 :(得分:0)
这是一个返回带有消息和布尔值的对象的函数。
示例片段:
function testPassword(pwd) {
if (pwd.length <= 6)
return { valid: false, message: "Please make sure password is longer than 6 characters." };
if(!/[A-Z].*[A-Z]/.test(pwd))
return { valid: false, message: "Please make sure password includes 2 capital letters" };
if (!/\d/.test(pwd))
return { valid: false, message: "Please make sure Password Includes a Digit" };
if (/\s/.test(pwd))
return { valid: false, message: "Please only use visible characters" };
return { valid: true, message: "Valid Password" };
}
console.log(testPassword('Val1dPassword'));
console.log(testPassword('SH0rt'));
console.log(testPassword('No2capitals'));
console.log(testPassword('NoDigits'));
console.log(testPassword('Has\tat least 1 WhiteSpace'));
然后可以简化您的功能。
function validera() {
let passw = document.getElementById("User-Password").value;
let check = testPassword(passwd);
if (check.valid) {
alert(check.message);
return false;
}
else {
alert("Account created")
}
}