尝试编写密码验证器,该验证器可以包含4个字符组中的至少3个不同的字符组。
条件:
密码应具有以下4个字符中的3个不同的字符组 字符组,每个字符组的密码至少应包含2个字符。
大写字母
小写字母
数字
特殊字符(!@#$%&)
我在javascript中写了正则表达式:
IQKeyboardManagerSwift
但这并没有通过某些条件。
一些有效密码:
a2w4hHH#
$#aaY5U5
YT7gh8q2
任何帮助将不胜感激 谢谢:)
答案 0 :(得分:1)
考虑到您需要至少匹配四个字符集需求中的任何三个,编写一个用于验证密码的Javascript函数比使用纯正则表达式解决方案要容易得多。如果使用全部四个字符集而不是四个中的三个字符集,则纯正则表达式解决方案很容易。
选中此功能,该功能应该可以按您需要的方式工作。
function isPasswordValid(pass) {
if (pass.length < 8) {
return false;
}
var reg = [/[a-z]/,/[A-Z]/,/[0-9]/,/[(!@#$%&]/]
var count = 0;
for (var i = 0; i < reg.length;i++) {
if (reg[i].test(pass)) {
count++;
}
if (count >=3) {
return true;
}
}
return false;
}
var pwds = ['aB1@','aB1@aaaa','aaaaaaAA','$#aaY5U5','YT7gh8q2'];
for (s of pwds) {
console.log(s + ' --> ' + isPasswordValid(s));
}