自己在网上找了找,简单粗暴判断密码中需要包含大小写字母、英文符号、数字四中类型中的三种
+(BOOL)checkPassWord:(NSString *)passWord{
NSString *passWordRegex = @"^[\\x21-\\x7e]{8,20}$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
if ([passWordPredicate evaluateWithObject:passWord]) {
NSInteger index = 0;
passWordRegex = @".*[0-9]+.*";
passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
if ([passWordPredicate evaluateWithObject:passWord]) {
index ++;
}
passWordRegex = @".*[a-z]+.*";
passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
if ([passWordPredicate evaluateWithObject:passWord]) {
index ++;
}
passWordRegex = @".*[A-Z]+.*";
passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
if ([passWordPredicate evaluateWithObject:passWord]) {
index ++;
}
passWordRegex = @".*[\\x21-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7B-\\x7F]+.*";
passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
if ([passWordPredicate evaluateWithObject:passWord]) {
index ++;
}
if (index >= 3) {
return YES;
}
}
return NO;
}
该代码段展示了如何在iOS应用中验证用户输入的密码是否满足特定要求,即必须包含大小写字母、数字和特殊字符中的至少三种,且长度在8到20个ASCII可见字符之间。
1675

被折叠的 条评论
为什么被折叠?



