一尘不染

迅捷3-带有变音符号的搜索结果

swift

在我的应用程序中,我使用的搜索效果很好,但是我需要建议。当我搜索不带变音符号的文本时,我不知道该怎么办,因为结果也带有变音符号。 示例:
输入搜索Holeovice,我需要找到 Holeovice 以及 Holešovice

这是我的代码的一部分:

func filterContentForSearchText(_ searchText: String) {
        filteredERequests = requests.filter({( request : CityRequest) -> Bool in

            return request.cityName.lowercased().contains(searchText.lowercased())

        })
        myTable.reloadData()
    }

阅读 297

收藏
2020-07-07

共1个答案

一尘不染

您可以将range(of:, options:)选项与变音符号不敏感(还可以选择不区分大小写)一起使用。例:

let list = ["holesovice", "holešovice"]
let searchTerm = "sovi"

let filtered = list.filter {
    $0.range(of: searchTerm, options: [.diacriticInsensitive, .caseInsensitive]) != nil
}

print(filtered) // ["holesovice", "holešovice"]
2020-07-07