在忽略变音符号或重音符号的同时搜索阿拉伯语文本

Search arabic text while ignoring diacritics or accents

当我使用带有元音字母(fatha、kasra 等)的阿拉伯语时,搜索功能工作正常。如何在 vowels/accents 不敏感的情况下搜索阿拉伯语文本?

例如,如果我搜索 واليوم 它应该显示 ووَالْيوْمِ 等所有结果

这是我使用元音(变音符号)的代码。

 let arabicMatch = Dua.arabic.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)

对于 swift 和 iOS 9.

NSStringCompareOptions 也有一个 DiacriticInsensitiveSearch 可以使用(与不区分大小写的方式相同)。

或者您可以对字符串进行规范化

extension String {

func normalizeArabic() -> String {
    let newString = NSMutableString(string: self) as CFMutableString
    CFStringTransform(newString, nil, kCFStringTransformLatinArabic, Bool(truncating: 0))
    CFStringTransform(newString, nil, kCFStringTransformStripCombiningMarks, Bool(truncating: 0))
    return newString as String
}}