Contents

조회 수 18216 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

NSString 에서도 정규식을 사용할 수 있다.

아래는 자주 사용하는 간단한 예제..



1.숫자인지 체크
NSString *str = @"1234";
NSString *str1 = @"1234gfd432";
NSString *ptn = @"^[0-9]*$";
 
NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch];
NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch];
 
NSLog(@"%d, %d", range.length, range1.length); // 4, 0을 출력


2.영문자[특수문자(-,_,&)포함]인지 체크
NSString *str = @"1234";
NSString *str1 = @"asdfb-sdf";
NSString *ptn = @"^[a-zA-Z-\_&]*$";
 
NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch];
NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch];
 
NSLog(@"%d, %d", range.length, range1.length); // 0, 9 출력


3.유효한 이메일 주소 형식인지 체크
NSString *str = @"1234@abc";
NSString *str1 = @"leegt__@naver.com";
NSString *ptn =
@"^([a-zA-Z0-9-\_]{3,20})@([a-zA-Z0-9-\_]{3,20}).([a-zA-Z0-9-\_.]{2,20})$";
 
NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch];
NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch];
 
NSLog(@"%d, %d", range.length, range1.length); // 0, 17 출력


4.유효한 전화번호인지 체크
NSString *str = @"1234";
NSString *str1 = @"02-1234-1234";
NSString *ptn = @"([0-9]{2,3})-([0-9]{3,4})-([0-9]{4})";
 
NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch];
NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch];
 
NSLog(@"%d, %d", range.length, range1.length); // 0, 12 출력


5.유효한 핸드폰 번호인지 체크
NSString *str = @"012-123-1234";
NSString *str1 = @"010-1234-1234";
NSString *ptn = @"(010|011|016|017|018|019)-([0-9]{3,4})-([0-9]{4})";
 
NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch];
NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch];
 
NSLog(@"%d, %d", range.length, range1.length); // 0, 12 출력


6.정규식을 이용한 문자열 치환시
아래 주소 참조해주세요,
외부 데이터를 가져올때 태그를 제거하고 글자만 뽑아 내고 싶을때 사용하면 편합니다.
아래 소스에서 정규식이 @"<("[^"]*"|'[^']*'|[^'">])*>" 으로 되어져 있습니다.  이를 @"<[^<|>]*>"으로 사용해도
같은 결과를 뽑을수 있습니다.
자바스크립트에서 사용하는 정규식과 동일 ㅋㅋ
NSString *email = @"picomax@nate.com";
    NSArray *split = [email componentsSeparatedByString:@"@"];
    NSString *pre = [[split objectAtIndex:0] substringWithRange:NSMakeRange(0, 2)];
    NSString *post = [[split objectAtIndex:0] substringWithRange:NSMakeRange(2, [[split objectAtIndex:0] length]-2)];
    
    NSString *template = @"*";
    NSError *error   = nil;
    NSRegularExpression *regexp =
    [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z0-9-_]"
                                              options:0
                                                error:&error];
    NSString *replaced =
    [regexp stringByReplacingMatchesInString:post
                                     options:0
                                       range:NSMakeRange(0,post.length)
                                withTemplate:template];
    
    NSString *result = ([split count]>1) ? [NSString stringWithFormat:@"%@%@@%@", pre, replaced, [split objectAtIndex:1]] : [NSString stringWithFormat:@"%@%@@%@", pre, replaced, @"nate.com"];


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18413
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16385
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21247
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16485
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 11370
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15948
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 933
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21966
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 730
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 972
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98