作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 1 byte slice 假名组成的列表名称(示例 `゙),我通过 2 byte slice 假名 ji 进行搜索,但结果为零。你知道如何将搜索文本从 2 字节的假名转换为 1 字节吗?请帮助我。
我的代码:
let filteredData = searchText.isEmpty ? employeeList : employeeList.filter({(data : employee) -> Bool in
return data.emp_name_kana?.range(of: searchText, options: .caseInsensitive) != nil
})
最佳答案
Kata Kana 1 byte 不是 Unicode 中 "㽼゙"
等字符的合适名称,最好将其称为半角片假名,如 Unicode standard .这些字符中的每一个都不能用 UTF-8 中的 1 字节来表示。
您可以在比较字符串之前应用一些转换:
let halfwidthKatakanaStr = "ザジズゼゾ"
let fullwidthSearchText = "ジ"
let found = halfwidthKatakanaStr.range(of: fullwidthSearchText.applyingTransform(.fullwidthToHalfwidth, reverse: false)!) != nil
print(found) //->true
(注意)以上代码适用于 iOS9+、macOS 10.11+。如果您需要针对一些较旧的平台,您可能需要调用经典的 CFStringTransform
。
关于ios - 无法通过片假名(日文)1 字节和 2 字节(ji 和 `゙)搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41540991/
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎偏离主题,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或 include a mini
我想使用正则表达式从字符串中仅提取字母。这些字母可以来自任何类型的字母表。 我想获取文本并删除所有非字母的符号(保留空格)。我厌倦了使用正则表达式删除一组符号,但添加一路上发现的所有新类型符号的效率非
我熟悉不同的 MySQL 排序规则,我的数据库当前设置为 UTF8_general_ci,并且我使用 UTF8_unicode_ci 进行了半成功的搜索。我正在运行 mysql 5.6,我无法使用最新
我是一名优秀的程序员,十分优秀!