使用自定义uisearchbar搜索字符串

时间:2015-08-28 00:00:57

标签: objective-c uisearchbar

我正在开发一个iOS项目,我正在使用自定义搜索栏。即使我在搜索栏中输入093003或093 003,我仍然希望能够搜索093-003这样的文本。

这是我比较字符串的地方。

 NSArray *tempAccountArray = _searchBarText.length > 0 ? 
[[WBCBusinessLogic sharedInstance].internalAccountsArray 
filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"displayName CONTAINS[cd] %@ || displayNumber LIKE %@", _searchBarText, _searchBarText]]:
[WBCBusinessLogic sharedInstance].internalAccountsArray; 

2 个答案:

答案 0 :(得分:0)

你所要求的是非常简单的事情。您需要一个忽略空格和连字符的字符串比较功能。所以我们做了以下事情:

  • 首先删除两个空格和连字符串
  • 比较它们是否相等并返回结果。

    -(BOOL)doStringsMatch:(NSString*)first second:(NSString*)second
    {
         NSCharacterSet *skip = [NSCharacterSet characterSetWithCharactersInString:@"- "];
    
      return ([[first stringByTrimmingCharactersInSet:skip] isEqual:[second stringByTrimmingCharactersInSet:skip]]);
    
    }
    

编辑: 这只会修剪字符串开头或结尾的字符。对于使用正则表达式更清晰的解决方案: https://stackoverflow.com/a/13177885/1616513

答案 1 :(得分:0)

这是我用来比较字符串的方法 -

variant