iOS 密碼同時包含6~18位數字和大小寫字母,不包含特殊字元的判斷方法(正則表示式)
阿新 • • 發佈:2019-02-14
#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 [email protected]"^[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 [email protected]"^(?![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;
}
君凱商聯網-iOS-字唐名僧