[英]Validate password - must contain 2 capital letters
Can someone tell me why this function doesn't work?有人能告诉我为什么这个功能不起作用吗? the password length and the check of number work perfectly.
密码长度和数字检查工作完美。 But it is something wrong with the check of big capitals...
但是大写的支票有点不对劲……
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")
}
Or do I have to use regex?还是我必须使用正则表达式?
Here's a function that returns an object with a message and a boolean.这是一个返回带有消息和布尔值的对象的函数。
Example snippet:示例片段:
function testPassword(pwd) { if (pwd.length <= 6) return { valid: false, message: "Please make sure password is longer than 6 characters." }; if(!/[AZ].*[AZ]/.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'));
Then your function can be simplified.那么你的功能就可以简化了。
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")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.