Skip to content

Instantly share code, notes, and snippets.

@ahmedk92
Created March 4, 2020 12:20
Show Gist options
  • Save ahmedk92/f277cbdeb4c079e6640e9937506970aa to your computer and use it in GitHub Desktop.
Save ahmedk92/f277cbdeb4c079e6640e9937506970aa to your computer and use it in GitHub Desktop.
extension String {
var digitsArabized: String {
do {
let regex = try NSRegularExpression(pattern: #"\d"#, options: [])
let arabicDigits = Array("٠١٢٣٤٥٦٧٨٩")
var mutableSelf = self
regex.matches(in: self, options: [], range: nsRange).reversed().forEach {
guard
let range = Range($0.range, in: self),
let digit = Int(self[range])
else { return }
mutableSelf.replaceSubrange(range, with: String(arabicDigits[digit]))
}
return mutableSelf
} catch {
return self
}
}
private var nsRange: NSRange {
let range = startIndex..<endIndex
return NSRange(range, in: self)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment