Object-C 密码格式要求: 1:长度最少(10位) 2:包含字母、数字和特殊字符。 3:不能是连续的字典顺序。(3位以上,含3位连续字典顺序,例如123,abc等) 4:密码不能包含账号信息。 5:密码必须同时包含大小写字母。
时间: 2024-03-26 20:41:41 浏览: 139
Objective-C 实现这些密码格式要求可以采用以下方法:
```objective-c
- (BOOL)isValidPasswordFormat:(NSString *)password account:(NSString *)account {
NSString *passwordRegex = @"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#$%^&*()_+\\-={}\\[\\]|;:'\",.<>/?]).{10,}$";
NSPredicate *passwordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", passwordRegex];
if (![passwordPredicate evaluateWithObject:password]) {
return NO;
}
// 检查是否包含连续的字典顺序
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(012|123|234|345|456|567|678|789|890|abc|bcd|cde|def|efg|fgh|ghi|hij|ijk|jkl|klm|lmn|mno|nop|opq|pqr|qrs|rst|stu|tuv|uvw|vwx|wxy|xyz|ABC|BCD|CDE|DEF|EFG|FGH|GHI|HIJ|IJK|JKL|KLM|LMN|MNO|NOP|OPQ|PQR|QRS|RST|STU|TUV|UVW|VWX|WXY|XYZ)" options:0 error:&error];
NSArray *matches = [regex matchesInString:password options:0 range:NSMakeRange(0, password.length)];
if (matches.count > 0) {
return NO;
}
// 检查密码是否包含账号信息
if ([password rangeOfString:account].location != NSNotFound) {
return NO;
}
return YES;
}
```
这段代码会匹配包含至少一个小写字母、一个大写字母、一个数字和一个特殊字符且长度至少为10的字符串,然后检查是否包含连续的字典顺序和是否包含账号信息。如果输入的密码符合这些规则,返回 YES,否则返回 NO。
阅读全文