iPhone:在UITextView中验证文本输入 - 最好的方法?

时间:2011-08-02 23:40:44

标签: iphone regex uitextfield

验证和检查用户在UITextField中输入的字符串的最佳方法是什么?

我的工作流程如下: 1)用户启动视图 2)视图包含几个UITexField 3)用户填写UIText字段内的数据 4)用户点击“全部保存”按钮 5)对UITextFields中的字符串进行身份验证,以确定它们是否可接受 6)在进行身份验证时,活动指示器正在进行中 7)弹出成功视图并返回信息 8)如果不成功,弹出UIActionsheet并通知用户哪些字段不正确以及可接受的参数是什么。

我的问题是:我是否使用正则表达式来验证字符串?如果有的话,是否有任何有用的教程或链接用于此目的?

以下是代码:

-(IBAction)saveAllButtonPressed
{
    //Authenticate input ie: strings here
    //TO BE IMPLEMENTED

    if(!passedAuthentication)
       {
        //show UIActionsheet here

       }
    else //If passed authentication save everything and pop off the view 
       {
//sanitize input before storing in customer info model ie. take out dashes, strings etc..
        //TO BE IMPLEMENTED



        Cart.customerInfoObtained = YES;
        infoModel = [[customerInfoModel alloc] initWithObjects:self.Name.text
                                                         AptNo:self.AptNum.text
                                                       Street1:self.Street1.text
                                                       Street2:self.Street2.text
                                                          City:self.City.text
                                                           Tel:self.Telephone.text
                                                         Email:self.Email1.text]; 
[Cart addCustomerInfo:infoModel];
   }

}

1 个答案:

答案 0 :(得分:1)

我不确定您在文本中尝试进行身份验证,但在iOS 4.0中,Objective C中有一个正则表达式类(documentation)。当您验证正则表达式时,取决于您要查找的内容可能是也可能不是最佳方式。例如,如果要确保字符串仅包含字母数字字符,则可以执行以下操作:

NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
BOOL valid = [[MY_STRING stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""];

此方法检查字符串并删除在NSCharacterSet中找到的所有字符 - 如果生成的字符串没有字符,则没有意外字符。您可以创建自己的NSCharacterSets,因此与正则表达式相比,这可能是一种更简单的验证方法。