我正在进行强度密码测试,我正在尝试检查密码是否包含大写和小写字符。我使用了两个正则表达式,它们几乎正在工作;使用此处的代码:
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",上限和下限变为真。
我对正则表达式不是很好,我犯了错误吗?
答案 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"));