Objective-c regex to check phone number
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
A comprehensive regex for phone number validation
如何在objective-c中验证电话号码(NSString *)?规则:
- 最少7位数
- 最多10位数
- 第一个数字必须是2,3,5,6,8或9
谢谢
您可以使用正则表达式库(如RegexKit等),也可以通过
1 2 3 4 | NSString *phoneNumber = ...; NSString *phoneRegex = @"[235689][0-9]{6}([0-9]{3})?"; NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex]; BOOL matches = [test evaluateWithObject:phoneNumber]; |
如果你在iPhone上,那么iOS 4引入了
请不要将自己的正则表达式用于电话号码。别。
电话号码的格式在全国范围内有所变化,您的应用可能会在您所在国家/地区之外使用。
相反,使用Apple提供的东西,正如Josh所说。看这里。
对于那些搜索电话提取的人,您可以从文本中提取电话号码,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 | NSString *userBody = @"This is a text with 30612312232 my phone"; if (userBody != nil) { NSError *error = NULL; NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber error:&error]; NSArray *matches = [detector matchesInString:userBody options:0 range:NSMakeRange(0, [userBody length])]; if (matches != nil) { for (NSTextCheckingResult *match in matches) { if ([match resultType] == NSTextCheckingTypePhoneNumber) { DbgLog(@"Found phone number %@", [match phoneNumber]); } } } } |
`
iOS 4.0及更高版本中提供的
在iOS 4.0+中有内置类来执行此操作,NSRegularExpression
在其他任何事情中,您可以使用第三方RegEx库,或者如果您的需求足够窄,则使用NSPredicate