Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extension String {
- private func convertFullWidthToHalfWidth(reverse: Bool) -> String {
- let str = NSMutableString(string: self) as CFMutableString
- CFStringTransform(str, nil, kCFStringTransformFullwidthHalfwidth, reverse)
- return str as String
- }
- var hankaku: String {
- return convertFullWidthToHalfWidth(false)
- }
- var zenkaku: String {
- return convertFullWidthToHalfWidth(true)
- }
- private func convertFullWidthToHalfWidthOnlyNumber(fullWidth: Bool) -> String {
- var str = self
- let pattern = fullWidth ? "[0-9]+" : "[0-9]+"
- let regex = try! NSRegularExpression(pattern: pattern, options: [])
- let results = regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count))
- results.reverse().forEach {
- let subStr = (str as NSString).substringWithRange($0.range)
- str = str.stringByReplacingOccurrencesOfString(
- subStr,
- withString: (fullWidth ? subStr.zenkaku : subStr.hankaku))
- }
- return str
- }
- var hankakuOnlyNumber: String {
- return convertFullWidthToHalfWidthOnlyNumber(false)
- }
- var zenkakuOnlyNumber: String {
- return convertFullWidthToHalfWidthOnlyNumber(true)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement