3

我到处寻找,找不到适用于此的解决方案。

我有:

- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {
    NSString *regEx = @"/^[1-9]\d*(\.\d+)?$/";
    NSRange r = [textField.text rangeOfString:regEx options:NSRegularExpressionSearch];

    if (r.location == NSNotFound) {
        UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Entry Error"
                                                     message:@"Enter only numbers or decimals"         
                                                    delegate:self 
                                           cancelButtonTitle:@"OK"
                                           otherButtonTitles:nil];
        [av show];

        return NO;
    } else {
        return YES;
    }
}

但是正则表达式不起作用。我希望它只接受数字和小数。我知道与正则表达式的代码有一些奇怪的区别,你必须加倍反斜杠或其他东西,但我无法弄清楚。

4

1 回答 1

2

删除开头的 [1-9] 以及正斜杠并转义反斜杠,因此它只是:

 "^\\d*(\\.\\d+)?$"

请参阅如何在 Objective-C 中正确转义此正则表达式?

于 2012-10-07T03:03:39.210 回答