//直接调用这个方法就行 -(int)checkIsHaveNumAndLetter:(NSString*)password{ //数字条件 NSRegularExpression *tNumRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive error:nil]; //符合数字条件的有几个字节 NSUInteger tNumMatchCount = [tNumRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)]; //英文字条件 NSRegularExpression *tLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[A-Za-z]" options:NSRegularExpressionCaseInsensitive error:nil]; //符合英文字条件的有几个字节 NSUInteger tLetterMatchCount = [tLetterRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)]; if (tNumMatchCount == password.length) { //全部符合数字,表示沒有英文 return 1; } else if (tLetterMatchCount == password.length) { //全部符合英文,表示沒有数字 return 2; } else if (tNumMatchCount + tLetterMatchCount == password.length) { //符合英文和符合数字条件的相加等于密码长度 return 3; } else { return 4; //可能包含标点符号的情況,或是包含非英文的文字,这里再依照需求详细判断想呈现的错误 } }