2016-05-10 4 views
0

Ich habe Telefonnummern in der Datenbank im Format wie + 1-541-634-4210 oder +1 (541) 634-4210 gespeichert.Ersetzen Sie Zeichen aus der Zeichenfolge in der Datenbank gespeichert mit NSPredicate

Ich möchte unformatierte Nummer wie +15416344210 in der Datenbank mithilfe von NSPredate suchen, aber ich kann das richtige Prädikat Format nicht bilden.

Ich versuche, so etwas wie diese

NSString *regex = [NSString stringWithFormat:@""]; 
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"number MATCHES %@ == %@",regex,phoneNumber]]; 

Also irgendwelche Ideen, wie das zu erreichen?

Jede Hilfe wird sehr geschätzt. Vielen Dank!

+0

zeigen, was Sie versucht, zu erklären, was es falsch ist, zeigen einige Beispiele, was Sie meinen – Wain

+1

Warum Sie, dass viele Format haben Sie? Es könnte sinnvoller sein, immer im selben Format zu speichern (Verschieben des Problems beim Speichern der Daten). – Larme

+0

@Wain Aktualisiert das Prädikatformat – Shubham

Antwort

0

Haben Sie versucht, Prädikat zu verwenden.

Swift

let predicate = NSPredicate(format: "SELF MATCHES %@", "[+][0-9]+") 
predicate.evaluateWithObject(phone number) 

Objective-C

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", "[+][0-9]+"]; 
[predicate evaluateWithObject:phoneNumber]; 

Bitte aktualisieren Sie die richtige Zeichenfolge basierend auf Ihren Bedingungen.

+0

Wie funktioniert das mit den Kerndaten mit NSFetchRequest? – Shubham

+0

@shubham Ich denke, Sie fragen über Daten aus der Datenbank mit Core-Daten abrufen –

0

Versuchen Sie folgendes:

predicate = [NSPredicate predicateWithFormat:@"number MATCHES %@", [[filter componentsSeparatedByString:@"- "] objectAtIndex:0]]; 
Verwandte Themen