Проверка номера телефона с использованием NSDataDetector

Как я могу проверить номер телефона, используя NSDataDetector. В моем проекте все текстовое содержимое длиной более 14 также допустимо, но NSDataDetector не обнаруживает его таким образом.

Я использую код из следующего сообщения stackru: NSTextCheckingResult для телефонных номеров

2 ответа

Решение

Ты не можешь использовать NSDataDetector доступно только для [10_7,4_0]

Так что это простой и правильный способ подтвердить номер телефона, как ниже, а не NSDataDetector

    NSString *string =@"121453315"; 
    NSString *phoneRegex = @"^((\\+)|(00))[0-9]{6,14}$";
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
    BOOL phoneValidates = [phoneTest evaluateWithObject:string];

Используйте NSDataDetector для обычных телефонных номеров и добавьте специальное регулярное выражение, совпадающее только с 14-значными + телефонными номерами, которые необходимы вашему приложению для добавления недостающих результатов. Для более коротких телефонных номеров NSDataDetector будет гораздо точнее, чем любое регулярное выражение, которое вы можете написать...

Другие вопросы по тегам