Сравнение формата строки в objective c

#iphone #objective-c #nsstring #string-formatting #string-comparison

#iPhone #objective-c #nsstring #форматирование строки #сравнение строк

Вопрос:

привет всем, у меня есть один NSString в этом формате 1-123-123-1234 (номер телефона в базовом стиле США), мой вопрос в том, как мы можем сравнить, что моя строка форматируется в 1-123-123-1234 формате.

на основе форматирования сравнения строк я должен выполнить другую задачу .. так что у кого-нибудь есть какие-либо идеи относительно того же, пожалуйста, помогите мне.

Комментарии:

1. Я полагаю, вам следует использовать NSRegularExpression

Ответ №1:

Вы можете использовать a NSRegularExpression , чтобы проверить, имеет ли ваша строка определенный формат.

 NSRegularExpression *regex = [NSRegularExpression
    regularExpressionWithPattern:@"^\ \d-\d{3}-\d{3}-\d{4}$"
                         options:NSRegularExpressionCaseInsensitive
                           error:nil];

int num = [regex numberOfMatchesInString:phoneNumberHere
                                 options:0
                                   range:NSMakeRange(0, [phoneNUmberHere length])];
if (num == 1) {
    // match!
}
  

Комментарии:

1. Я думаю, что сначала \d это может быть просто 1 , если OP проверяет только телефонные номера США, хотя единственным другим однозначным кодом страны является 7 для России.

2. Это верно только для iOS 4.0 и выше. Если вы обнаружите, что пишете код для чего-то под 4.0, используйте NSRegularExpressionSearch один из методов поиска NSString .

3. когда я передаю свой номер телефона, я получаю сообщение с предупреждением: ‘NSRegularExpression’ может не отвечать на ‘-numberOfMatchesInString:’

4. я не могу сравнить с этим предупреждением.. сбой моего приложения. !! 🙁

5. Вместо этого используйте этот метод — (NSUInteger)numberOfMatchesInString:(NSString *)параметры строки:(NSMatchingOptions)диапазон параметров:(NSRange)диапазон. Для получения дополнительной информации обратитесь к ссылке на класс здесь developer.apple.com/library/mac/#documentation/Foundation /…