Created
March 4, 2020 12:20
-
-
Save ahmedk92/f277cbdeb4c079e6640e9937506970aa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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