iOS 정규 표현 식 UITextField 입력 내용 제한
3492 단어 UITextField
정규 표현 식 으로 입력 텍스트 를 제어 하 는 것 은 매우 편리 합 니 다. 정규 표현 식 에 따라 UITextField 텍스트 내용 의 입력 을 제한 하 는 방법 을 기록 합 니 다.
코드
// UITextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (string.length == 0) return YES;
// , range, , string, textfield
NSString *checkStr = [textField.text stringByReplacingCharactersInRange:range withString:string];
//
NSString *regex = @"^[0-9]+$";
return [self validateStr:checkStr withRegex:regex];
}
//
- (BOOL)validateStr:(NSString *)string withRegex:(NSString *)regex
{
NSPredicate *resultStr = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
return [resultStr evaluateWithObject:string];
}
총결산
입력 내용 이 요구 에 부합 되 는 지 에 따라 입력 여 부 를 판단 하면 입력 내용 을 제어 하 는 요구 에 도달 할 수 있 습 니 다. 구체 적 인 내용 이 어떻게 제한 되 는 지 는 정규 표현 식 이 어떤 지 봐 야 합 니 다. 상기 표현 식 은 입력 을 제한 하 는 내용 이 반드시 숫자 여야 합 니 다.
정규 표현 식
//
- (BOOL)validatePassword:(NSString *)passWord {
NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
return [passWordPredicate evaluateWithObject:passWord];
}
//
- (BOOL)validatePhoneNum:(NSString *)phoneNum {
// 1 ,10 \d
NSString *phoneRegex = @"^(1)\\d{10}$";
NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
return [phoneTest evaluateWithObject:phoneNum];
}
//
- (BOOL) validateEmail:(NSString *)email
{
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
텍스트 필드에서 유효성 검사에 걸리면 문자 색상을 빨간색으로 밑줄을 그립니다.안녕하세요 이런 느낌의 ↓ 텍스트 필드를 만들어 보았습니다. UITextField 를 계승한 클래스에 isValid 를 갖게 하는 형태로 해 보았습니다. Storyboard에서 텍스트 필드를 설정하는 경우 클래스 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.