Dan*_*ruz 0 objective-c uitextfield ios
您好我目前使用以下来验证密码,但我也想包括特殊字符.目前它只包含数字和字母.请帮忙.
- (BOOL)validatePassword:(NSString *) password{
NSString *ACCEPTABLE_CHARECTERS = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARECTERS] invertedSet];
NSString *filtered = [[password componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [password isEqualToString:filtered];
}
Run Code Online (Sandbox Code Playgroud)
Piy*_*rma 14
你可以试试这个
- (BOOL)validatePassword:(NSString *) password{
if(password.length == 0){
return NO;
}
NSString *regex = @"^(?=(.*\d){2})(?=.*[a-zA-Z])(?=.*[!@#$%])[0-9a-zA-Z!@#$%]{8,}";
NSPredicate *passwordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [passwordPredicate evaluateWithObject:password];
}
Run Code Online (Sandbox Code Playgroud)
说明
(?=(.*\d){2})- 使用预测(?=)并说密码必须至少包含2位数
(?=.*[a-zA-Z]) - 使用预测并说密码必须包含alpha
(?=.*[!@#$%]) - 使用预测并说密码必须包含一个或多个已定义的特殊字符
[0-9a-zA-Z!@#$%] - 指示允许的字符
{8,} - 说密码必须至少8个字符
它可能需要一些调整,例如确切地指定你需要哪些特殊字符,但它应该做到这一点.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |