Вы можете использовать библиотеку регулярных выражений (например, RegexKit и т. Д.), Или вы можете использовать регулярные выражения через NSPredicate
(немного более неясно, но не требует третьего -партийные библиотеки). Это будет выглядеть примерно так:
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 представила NSRegularExpression
, который также будет работать. Подход NSPredicate
работает как на Mac, так и на iPhone (любой версии).
В iOS 4.0+ для этого есть встроенные классы, NSRegularExpression
Во всем остальном вы можете использовать стороннюю библиотеку RegEx или использовать NSPredicate , если ваши потребности достаточно узкие
Пожалуйста, не используйте свой собственный regex для номера телефона. Не надо.
Формат телефонных номеров меняется по всей стране, и ваше приложение может использоваться за пределами вашей страны.
Вместо этого используйте то, что предоставляет Apple, как говорит Джош. См. здесь.