如何在iOS sdk中使用正则表达式

如何在iOS sdk中使用正则表达式,ios,iphone,objective-c,regex,Ios,Iphone,Objective C,Regex,如何在iOS sdk中使用正则表达式 我需要使用正则表达式验证UITextField,只允许数值进入UITextField试试这个 对于正则表达式 ^[0-9]+$在您的shouldchangeCharacters范围内,您可以通过以下方式执行此操作 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

如何在iOS sdk中使用正则表达式

我需要使用正则表达式验证
UITextField
,只允许数值进入
UITextField

试试这个 对于正则表达式
^[0-9]+$

在您的shouldchangeCharacters范围内,您可以通过以下方式执行此操作

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

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

        NSString *expression = @"^([0-9]+$";

        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression 
                                                                               options:NSRegularExpressionCaseInsensitive 
                                                                                error:nil];
        NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
                                                            options:0
                                                              range:NSMakeRange(0, [newString length])];        
        if (numberOfMatches == 0)
            return NO;        


    return YES;
}

试试这个,它会对你有帮助的

- (void)textFieldDidEndEditing:(UITextField *)textField 
{
    activeField = nil;
    if (textField == tfMobile) 
    {
        NSString *strRegExp=@"[0-9]*";
        NSPredicate *MobNumTest=[NSPredicate predicateWithFormat:@"SELF MATCHES %@",strRegExp];
        if([MobNumTest evaluateWithObject:textField.text]==NO)
        { 

            UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Warning" message:@"Please Enter correct contact no." delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];

            [alert show];
            [alert release];

            tfMobile.text =@"";

        }

    }
    }

在需要的地方调用此方法。如果checkString仅包含数字,则返回true

- (BOOL) textFieldValidation:(NSString *)checkString {
       NSString *stricterFilterString = @"[0-9]+";//here + is for one or more numerals(use * for zero or more numerals)
       NSString *regEx =  stricterFilterString;
       NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regEx];
       return [emailTest evaluateWithObject:checkString];

}

@RKK-显然没有尝试搜索@RKK如果我现在不试试怎么做关于正则表达式!我不知道如何在我的编码中使用9-0美元这样的符号!你真的需要正则表达式吗?如果您只想允许数字输入,您可以在回答这个问题时使用@user1478583,您可能知道正则表达式,但这并不意味着您实际尝试过做任何事情。你有没有搜索过其他类似的问题(提示-有很多),搜索过文档,搜索过任何地方?尝试编写一些代码,然后遇到一些问题(如果是这样,请发布代码并解释您遇到的问题)。我们是来帮助你的,但你必须在提出要求之前自己做一些工作