【发布时间】:2015-01-17 11:17:33
【问题描述】:
假设我有这个号码 1234567890
我想要这种格式 (xxx) xxx-xxxx
所以在显示器上我希望它显示为 (123) 456-7890
我将如何实现这一目标?
我需要在文本字段上使用某种正则表达式吗?
感谢您的宝贵时间
【问题讨论】:
标签: ios objective-c cocoa-touch swift uitextfield
假设我有这个号码 1234567890
我想要这种格式 (xxx) xxx-xxxx
所以在显示器上我希望它显示为 (123) 456-7890
我将如何实现这一目标?
我需要在文本字段上使用某种正则表达式吗?
感谢您的宝贵时间
【问题讨论】:
标签: ios objective-c cocoa-touch swift uitextfield
如果您使用的是 Swift:
let phoneNum = activity["phoneNumber"] as String
let digits = NSCharacterSet.decimalDigitCharacterSet().invertedSet as NSCharacterSet
let filtered1 = phoneNum.componentsSeparatedByCharactersInSet(digits) as NSArray
let filtered = filtered1.componentsJoinedByString("") as NSString
if filtered.length == 11 {
let formatted = NSString(format: "(%@) %@-%@", filtered.substringWithRange(NSMakeRange(1, 3)), filtered.substringWithRange(NSMakeRange(4, 3)), filtered.substringWithRange(NSMakeRange(7, 4))) as NSString
phoneNumberField.text = formatted
} else if filtered.length == 10 {
let formatted = NSString(format: "(%@) %@-%@", filtered.substringWithRange(NSMakeRange(0, 3)), filtered.substringWithRange(NSMakeRange(3, 3)), filtered.substringWithRange(NSMakeRange(6, 4))) as NSString
phoneNumberField.text = formatted
}
【讨论】:
试试这样的:
NSCharacterSet *digits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
NSString *filtered = [[[textField text] componentsSeparatedByCharactersInSet: digits] componentsJoinedByString: @""];
if ([filtered length] == 11) {
NSString *formatted = [NSString stringWithFormat: @"(%@) %@-%@", [filtered substringWithRange: NSMakeRange(1, 3)], [filtered substringWithRange: NSMakeRange(4, 3)], [filtered substringWithRange: NSMakeRange(7, 4)]];
[textField setText: formatted];
} else if ([filtered length] == 10) {
NSString *formatted = [NSString stringWithFormat: @"(%@) %@-%@", [filtered substringWithRange: NSMakeRange(0, 3)], [filtered substringWithRange: NSMakeRange(3, 3)], [filtered substringWithRange: NSMakeRange(6, 4)]];
[textField setText: formatted];
}
【讨论】:
尝试使用RMPhoneFormat。
来自 GitHub 页面:“RMPhoneFormat 提供了一个简单易用的类,用于格式化和验证 iOS 应用程序中的电话号码。格式应该复制您在联系人应用程序中看到的相同电话号码的内容。”
【讨论】: