2010-06-09 61 views
2

我是一位老开发人员,但是新开发Objective-C和iPhone。我正在寻找对输入值进行表单验证的最佳方式。我一直在谷歌搜索一段时间,找不到任何好的代码,但可能会使用错误的关键worrds,等等...我正在寻找的东西像捕捉空字符串,数字验证,日期验证等...它可以在用户输入数据(输入掩码类型)时或在控制器的丢失焦点上捕获。iPhone Objective-C表单验证

如果你能指点我一些很棒的资源!

谢谢!

Simon。

回答

2

我不知道特定的资源,但是你可以开始使用NSPredicate来验证带正则表达式的字段。例如,用于邮件验证

BOOL result;  

NSString* emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
NSPredicate* emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 

result = [emailTest evaluateWithObject:anEmailAddress]; 
1

Espuz建议的emailRegex有一个小问题。 []括号内的范围运算符“ - ”应该被转义,否则具有“ - ”字符的电子邮件将被作为无效返回。

我使用以下正则表达式字符串进行模式匹配,允许使用“_”,“ - ”和“。”。地址中的字符:

    NSString *emailRegex = @"[a-zA-Z0-9.\\-_]{2,32}@[a-zA-Z0-9.\\-_]{2,32}\.[A-Za-z]{2,4}"; 
        NSPredicate *regExPredicate = 
         [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 
        BOOL validEmail = [regExPredicate evaluateWithObject:txtField.text];