文本字段验证

时间:2011-05-03 11:54:30

标签: iphone

我想用YYYY格式验证我的文本字段,这意味着用户只能输入一年四位数字。有七个文本字段,包括此文本字段;我只希望这个文本字段需要验证。

2 个答案:

答案 0 :(得分:1)

以下是验证文本字段的示例。

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
       If(textField == myTextField)
       {

         if ([textField length] > 4)
         {
             return NO;
         }
        NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
        [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];

        NSNumber* candidateNumber;

        NSString* candidateString = [textField.text stringByReplacingCharactersInRange:range withString:string];

        range = NSMakeRange(0, [candidateString length]);

        [numberFormatter getObjectValue:&candidateNumber forString:candidateString range:&range error:nil];

        if (([candidateString length] > 0) && (candidateNumber == nil || range.length < [candidateString length])) {

            return NO;
        }
        else 
        {
            return YES;
        }
    }
    }

答案 1 :(得分:1)

  1. 在界面构建器中将键盘类型设置为数字。
  2. 实现UITextFieldDelegate并将文本字段的委托分配给保存它的控制器类
  3. 实施textfielddidendediting委托方法并验证您的输入。
  4. 创建一个正则表达式,如下所示

    NSString *number = @"[0-9]"; 
        NSPredicate *numbertest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", number]; 
     if ([numbertest evaluateWithObject:yourtextfield.text] != YES)
    {
    // Display error message
    }