您的位置:首页 > 移动开发 > IOS开发

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

2017-09-19 15:57 1296 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐