iOS 密码同时包含6~18位数字和大小写字母,不包含特殊字符的判断方法(正则表达式)

时间:2025-02-14 18:43:07
#pragma mark --密码同时包含6~18位数字和大小写字母,不包含特殊字符的判断方法(正则表达式) + (NSString *)isOrNoPasswordStyle:(NSString *)passWordName { NSString * message; if (passWordName.length<6 message="@'密码不能少于6位,请您重新输入';" else="" if="" passwordname="" length="">18) { message = @"密码最大长度为18位,请您重新输入"; } else if ([self JudgeTheillegalCharacter:passWordName]) { message = @"密码不能包含特殊字符,请您重新输入"; } else if (![self judgePassWordLegal:passWordName]) { message = @"密码必须同时包含字母和数字"; } return message; } + (BOOL)JudgeTheillegalCharacter:(NSString *)content{ //提示标签不能输入特殊字符 NSString *str =@"^[A-Za-z0-9\\u4e00-\u9fa5]+$"; NSPredicate* emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", str]; if (![emailTest evaluateWithObject:content]) { return YES; } return NO; } + (BOOL)judgePassWordLegal:(NSString *)pass{ BOOL result ; // 判断长度大于6位后再接着判断是否同时包含数字和大小写字母 NSString * regex =@"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; result = [pred evaluateWithObject:pass]; NSLog(@"%hhd",result); return result; }