我试图删除阿拉伯语文字变音符号。例如,我需要将此َب
转换为此ب
,这是我的代码:
if (text != "") {
for char in text! {
print(char)
print(char.unicodeScalars.first?.value)
if allowed.contains("\(char)"){
newText.append(char)
}
}
self.textView.text = text!
} else {
// TODO :
// show an alert
print("uhhh no way")
}
我试过这些解决方案,但没有运气:
您可以使用Regex,尝试此代码
let myString = "الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ"
let regex = try! NSRegularExpression(pattern: "[\\u064b-\\u064f\\u0650-\\u0652]", options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, myString.unicodeScalars.count)
let modString = regex.stringByReplacingMatches(in: myString, options: [], range: range, withTemplate: "")
print(modString)
赞美真主,世界之王
你可以使用CFStringTransform
和kCFStringTransformStripCombiningMarks
删除(accents or diacritics)
let original = "ََب"
let mutableString = NSMutableString(string: original) as CFMutableString
CFStringTransform(mutableString, nil, kCFStringTransformStripCombiningMarks, Bool(truncating: 0))
let normalized = (mutableString as NSMutableString).copy() as! NSString
print(normalized)
CFStringTransform
包含通过删除组合标记的字符串转换的常量。
kCFStringTransformStripCombiningMarks
用于剥离组合标记(重音符号或变音符号)的变换的标识符。