You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI iOS15 实现不区分大小写搜索有无更简便方案?

优化实现方案

完全有更简洁且鲁棒性更好的写法,你可以直接用Swift字符串原生提供的不区分大小写匹配API,不需要手动转换大小写,同时还能避免特殊语种大小写转换异常的问题,优化后代码如下:

var searchResults: [Array] {
    searchText.isEmpty ? filteredArray : filteredArray.filter {
        $0.name.localizedCaseInsensitiveContains(searchText)
    }
}

可选扩展场景

  • 如果你的搜索场景需要支持带重音字符的模糊匹配(比如输入cafe匹配Café),可以替换为localizedStandardContains方法,它会同时忽略大小写和发音符号,更符合普通用户的搜索预期:
    $0.name.localizedStandardContains(searchText)
    
  • 如果你需要自定义更多匹配规则,也可以使用range(of:options:)方法传入对应的参数,比如同时开启不区分大小写和不区分空格的匹配:
    $0.name.range(of: searchText, options: [.caseInsensitive, .whitespaceInsensitive]) != nil
    

内容的提问来源于stack exchange,提问作者RichStwrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:54:04