2010-06-09 2 views
2

저는 오래된 개발자이지만 Objective-C 및 iPhone 개발을 처음 사용합니다. 입력 된 값에 대해 양식 유효성 검사를 수행하는 가장 좋은 방법을 찾고 있습니다. 내가 잠시 동안 인터넷 검색하고 어떤 좋은 코드를 찾을 수 없습니다,하지만 잘못된 키 worrds 등을 사용하고있을 수도 ... 내가 빈 문자열, 숫자 유효성 검사, 날짜 유효성 검사 등 잡기 같은 것들을 찾고 있는데 ... 여기서 사용자가 데이터 (입력 마스크 유형)를 입력하거나 컨트롤의 포커스를 잃어 버렸을 때이를 포착합니다.iPhone Objective-C 폼 유효성 검사

훌륭한 리소스를 제공 할 수 있다면 저에게 좋은 소식을 알려주세요.

감사합니다.

사이먼.

답변

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];