import Foundation public enum ArabicNumeralStringType { case western case arabic case persian } public func normalizeArabicNumeralString(_ string: String, type: ArabicNumeralStringType) -> String { var string = string let numerals = [ ("0", "٠", "۰"), ("1", "١", "۱"), ("2", "٢", "۲"), ("3", "٣", "۳"), ("4", "٤", "۴"), ("5", "٥", "۵"), ("6", "٦", "۶"), ("7", "٧", "۷"), ("8", "٨", "۸"), ("9", "٩", "۹"), ] for (western, arabic, persian) in numerals { switch type { case .western: string = string.replacingOccurrences(of: arabic, with: western) string = string.replacingOccurrences(of: persian, with: western) case .arabic: string = string.replacingOccurrences(of: western, with: arabic) string = string.replacingOccurrences(of: persian, with: arabic) case .persian: string = string.replacingOccurrences(of: western, with: persian) string = string.replacingOccurrences(of: arabic, with: persian) } } return string }