NSPredicate regex काम नहीं कर रहा है - उद्देश्य-सी, आईओएस, regex, कोको-स्पर्श, nspredicate

मैं उपयोग कर रहा हूँ:

+ (BOOL)isPassword:(NSString*)password {
NSString* pattern = @"^(?=.{6,20}$).*$";
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
return [predicate evaluateWithObject:password];
}

लेकिन यह हां के लिए लौट रहा है ""। कोई सुझाव?

उत्तर:

जवाब के लिए 2 № 1

जैसा @Pfitz ने बताया, आप डॉन 'ए' है SELF। उदाहरण के लिए सरणियों को फ़िल्टर करते समय इसका उपयोग किया जाता है।

उपयोग करने का प्रयास करें NSRegularExpression बजाय।

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"^(?=.{6,20}$).*$"
options:NSRegularExpressionCaseInsensitive
error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:password
options:0
range:NSMakeRange(0, [password length])];
if (match) {
NSRange range = [match range];
if (range.location != NSNotFound) {
// match
}
}