I wonder if someone would be able to help. I am trying to search a Parse class for a term using SearchBar
. The containsString
however is case sensitive and i would like it to be case insensitive. Please see code below;
-(void)filterResults:(NSString *)searchTerm {
[self.searchResults removeAllObjects];
PFQuery *query = [PFQuery queryWithClassName: @"Firefacts"];
[query whereKeyExists:@"Number"];
[query whereKey:@"Number" containsString:searchTerm];
NSArray *results = [query findObjects];
[self.searchResults addObjectsFromArray:results];
}
Any help would be greatly appreciated.
Use Regular Expression (?i)
instead ! credit goes to https://stackoverflow.com/a/9655203/2398886 , https://stackoverflow.com/a/9655186/2398886 and http://www.regular-expressions.info/modifiers.html
So replace
[query whereKey:@"Number" containsString:searchTerm];
with
[query whereKey:@"Number" matchesRegex:[NSString stringWithFormat:@"(?i)%@",searchTerm]];
or you can also use
[query whereKey:@"Number" matchesRegex:searchTerm modifiers:@"i"];
Your final code should be :
PFQuery *query = [PFQuery queryWithClassName: @"Firefacts"];
[query whereKeyExists:@"Number"];
[query whereKey:@"Number" matchesRegex:searchTerm modifiers:@"i"];
For Swift use this:
query.whereKey("Number", matchesRegex: searchTerm, modifiers: "i")
reference: https://docs.parseplatform.org/ios/guide/#queries
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With