Intereting Posts
Предупреждение о переключении Как удалить одиночный чат через xmpp в iOS? UIWebView переходит на видео Youtube, не оставаясь в альбомной ориентации Определите, были ли локальные уведомления явно запрещены Запросить триггерный запрос на iOS KeychainWrapperItem перестала работать в iOS 7.1 prepareForDeletion вызывается один раз, когда я вызываю deleteObject: и второй раз, когда я сохраняю Хорошо использовать ноль как BOOL для NO? AVAsset Сохранение видео в iOS с изображением наложения руинов видео Открытие устройств iOS, подключенных к машине Mac OS X iOS – просмотр iPad в Xcode отсутствует Быстрое обновление пользовательского интерфейса в обратном вызове иногда не выполняется Как получить 1-й, 2-й, 3-й, 4-й рабочий день (рабочий день) на следующий месяц Как сделать снимок экрана OpenGl ES поверх камеры предварительного просмотра в приложении iOS (приложение Augmented Reality)? Как я могу добавить два изображения uiimageview и сохранить его в галерее фотографий iphone в разработке приложений iphone?

Введенный текст должен иметь определенный формат

У меня есть textfield и я хочу, чтобы текст был введен в нем в формате: aa #### 1234 Я знаю, что это должно быть сделано в shouldChangeCharactersInRange делегата shouldChangeCharactersInRange textfield поля .nut Я не могу понять, как будет выполняться условие на каждого персонажа. Обязательно дайте свои предложения. Спасибо заранее!

Выражение, которое может быть полезно для проверки ваших потребностей, может быть:

 ^[az]{2}\s\d{4}\s\d{4}$ 

Вот:

  • ^ – показывает начало строки
  • [az]{2} – показывает любой символ между az ровно 2 раза
  • \s – Показывает символ пробела один раз.
  • \d{4} – показывает цифру от 0 до 9, ровно 4 раза.
  • $ – показывает конец строки

Примером в качестве обходного пути может быть это, здесь сложная часть состоит в том, чтобы разрешить строчку under construction:

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSError *error = NULL; NSRegularExpression *regex = nil; NSMutableString *combinedText = [textField.text mutableCopy]; [combinedText replaceCharactersInRange:range withString:string]; switch (combinedText.length) { case 1: case 2: regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"^[az]{%ld}", (long)combinedText.length] options:NSRegularExpressionCaseInsensitive error:&error]; break; case 3: regex = [NSRegularExpression regularExpressionWithPattern:@"^[az]{2}\\s" options:NSRegularExpressionCaseInsensitive error:&error]; break; case 4: case 5: case 6: case 7: regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"^[az]{2}\\s\\d{%ld}", (long)combinedText.length - 3] options:NSRegularExpressionCaseInsensitive error:&error]; break; case 8: regex = [NSRegularExpression regularExpressionWithPattern:@"^[az]{2}\\s\\d{4}\\s" options:NSRegularExpressionCaseInsensitive error:&error]; break; case 9: case 10: case 11: case 12: regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"^[az]{2}\\s\\d{4}\\s\\d{%ld}$", (long)combinedText.length - 8] options:NSRegularExpressionCaseInsensitive error:&error]; break; default: return false; } if(error) return false; NSUInteger numberOfMatches = [regex numberOfMatchesInString:combinedText options:0 range:NSMakeRange(0, combinedText.length)]; return numberOfMatches > 0 || string.length == 0; } 

Надеюсь, это поможет!

Создайте категории в UITextField и добавьте этот метод для записи в соответствии с вашим требованием. Ниже приведен пример идентификатора электронной почты:

  - (BOOL)validateRegEx:(NSString*)regexString { NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString options:NSRegularExpressionCaseInsensitive error:&error]; NSUInteger numberOfMatches = [regex numberOfMatchesInString:self.text options:0 range:NSMakeRange(0, [self.text length])]; return numberOfMatches > 0; } 

Попробуй это

 -(BOOL)checkString:(NSString *)str{ NSString *regex1 = @"^[a-bA-B0-9]"; // chabge regex as per your needs NSPredicate *test1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex1]; return [test1 evaluateWithObject:str] ; }