密码强度正则表达式与数字

时间:2016-11-27 11:07:59

标签: javascript regex

我正在进行强度密码测试,我正在尝试检查密码是否包含大写和小写字符。我使用了两个正则表达式,它们几乎正在工作;使用此处的代码:



    var upper = false;
    var lower = false;
    var upperCase= new RegExp('[^A-Z]');
    var lowerCase= new RegExp('[^a-z]');
    


    if (password.match(upperCase )){
        upper = true;    
    }
    if (password.match(lowerCase)){
        lower = true;
    }




当我输入数字或只是数字时,如" 1",上限和下限变为真。

我对正则表达式不是很好,我犯了错误吗?

2 个答案:

答案 0 :(得分:0)

除非您按行代码付款;你可以简单地写一下:

var upper = password.match(/[A-Z]/);
var lower = password.match(/[a-z]/);

这也解决了代码中使用[^]的错误,该错误会使匹配失效(也称为upperCase正则表达式与非大写字符匹配)

答案 1 :(得分:0)

看一下下面哪个使用test来返回一个布尔值,该布尔值表示密码是否包含大写和小写。您将看到它如何针对各种密码测试两个正则表达式。



    var upperCase= new RegExp('[A-Z]');
    var lowerCase= new RegExp('[a-z]');
    

function test(password) {
    return [ upperCase.test(password), lowerCase.test(password)];
  }

console.log(test("Abc"));
console.log(test("abc"));
console.log(test("123"));