iOS 密码同时包含6~18位数字和大小写字母,不包含特殊字符的判断方法(正则表达式)
#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;
}