-1

我是 Objective-C 代码编程的新手......并且是我第一次在 Stackoverflow 上发布问题。

有人可以告诉我为什么这段代码不起作用?我已经在测试网站上测试了正则表达式并且工作正常,但在 Xcode 中不起作用......我需要以这种格式(HH:MM)验证时间。

谢谢大家...

(编码)

  - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *expression = [[NSString alloc] init];
    if (textField == self.TB_orarioPartenza)
    {

       expression = @"^([0-1][0-9]|[2][0-3]):([0-5][0-9])$";
    }
    if (textField == self.TB_numGiri) {
        expression = @"^d{2}";
    }

    NSString *newString =[textField.text stringByReplacingCharactersInRange:range withString:string];
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression 
                                                                           options:0 
                                                                             error:nil];
    NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
                                                        options:0
                                                          range:NSMakeRange(0, [newString length])];         
    if (numberOfMatches == 0) return NO;        

    return YES;

}
4

1 回答 1

1

对于h:mm格式(例如"9:35")使用正则表达式:

^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

对于hh:mm格式(例如"09:35")使用正则表达式:

^(?:0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

于 2012-06-25T20:04:25.553 回答