简体   繁体   English

验证密码 - 必须包含 2 个大写字母

[英]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?还是我必须使用正则表达式?

If you are planning to use regex to find two capital letters then you can use like如果您打算使用正则表达式来查找两个大写字母,那么您可以使用像

\w*[A-Z]\w*[A-Z]\w*

Test this here on regextester在 regextester 上测试这里

Here Check it out Fiddle在这里检查一下Fiddle

CreateRandomPassword(Length, isUpperAlpha, isLowerAlpha, isNumaric ,SpecialChars)

I have developed easy function to generate password我开发了简单的功能来生成密码

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.

相关问题 密码正则表达式:必须以大写字母开头且仅包含一位数字 - Regex for password: Must start with a capital letter and contain only one digit 正则表达式验证三个大写字母,然后验证六位数? - Regex to Validate Three Capital Letters then Six Digits? ReactJS 组件名称必须以大写字母开头吗? - ReactJS component names must begin with capital letters? 密码的正则表达式必须至少包含八个字符,至少一个数字以及大小写字母和特殊字符 - Regex for password must contain at least eight characters, at least one number and both lower and uppercase letters and special characters 为什么 React 项目名称不能包含大写字母? - Why can't React project name contain capital letters? 如何验证名称中的每个第一个字母都是大写字母? - How do I validate that each first letter in a name is in capital letters? 寻找正则表达式以验证密码,长度必须大于8个字符,并且至少包含一个特殊字符 - looking for a regular expression to validate a password, must be greater than 8 characters long and contain at least one special character 将大写字母转换为小写字母,并将小写字母转换为大写字母 - convert capital letters into small and small letters into capital 密码必须包含以下任一条件 - Password must contain any one of the following criteria jQuery验证 - 密码必须包含大写和数字 - jQuery Validation - password MUST contain uppercase and number
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM