Notice
Recent Posts
Recent Comments
Link
투케이2K
198. (Objective-C/objc) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수 본문
Objective-C
198. (Objective-C/objc) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수
투케이2K 2026. 5. 26. 20:14728x90
반응형
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : OBJECTIVE-C

[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Objective-c
- 개발 툴 : Xcode
- 기술 구분 : 유틸 파일 / getCallNumFormat / Regular Expression
- 사전) 👉 정규식 (Regular Expression, 흔히 Regex) 간단 설명 :
>> 정규식은 문자열에서 특정 패턴을 찾거나, 검사하거나, 치환하기 위한 규칙(문법)입니다.
>> ^(\d{2}|\d{3})-(\d{3}|\d{4})-\d{4}$ 패턴 해석 예시 :
^ : 시작
(\d{2}|\d{3}) : 2자리 또는 3자리 숫자 (지역번호)
(\d{3}|\d{4}) : 3~4자리
\d{4} : 4자리
$ : 끝
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// ------------------------------------------------------------
// 🟦 [함수] : getMacFormat 코드 첨부
// ------------------------------------------------------------
- (NSString *)getMacFormat:(NSString *)macNum {
// [리턴 변수 선언]
NSString *returnData = @"";
// Null 체크
if ([[C_Util new] stringNotNull:macNum] == NO) {
[S_Log eWithTag:@"KWON_TWOK" msg:@"[getCallNumFormat] : Error : input data is null"];
return returnData;
}
// ------------------------------------------------------------
// 특수문자 제거
// ------------------------------------------------------------
NSString *replaceMacNum = [macNum copy];
NSError *error = nil;
NSRegularExpression *regex =
[NSRegularExpression regularExpressionWithPattern:@"[!@#$%^&*().,?:;/_{}+=-]"
options:0
error:&error];
replaceMacNum = [regex stringByReplacingMatchesInString:replaceMacNum
options:0
range:NSMakeRange(0, replaceMacNum.length)
withTemplate:@""];
// ------------------------------------------------------------
// 공백 제거
// ------------------------------------------------------------
replaceMacNum = [replaceMacNum stringByReplacingOccurrencesOfString:@" "
withString:@""];
// ------------------------------------------------------------
// 길이 체크 (짝수 여부)
// ------------------------------------------------------------
if ([[C_Util new] stringNotNull:replaceMacNum] &&
(replaceMacNum.length % 2 == 0)) {
NSMutableString *result = [NSMutableString string];
for (NSInteger i = 0; i < replaceMacNum.length; i++) {
// 2자리마다 ":" 추가
if (i != 0 && i % 2 == 0) {
[result appendString:@":"];
}
NSString *character =
[replaceMacNum substringWithRange:NSMakeRange(i, 1)];
[result appendString:character];
}
returnData = result;
}
else {
[S_Log eWithTag:@"KWON_TWOK"
msg:@"[getCallNumFormat] : Error : length mismatch"];
}
[S_Log wWithTag:@"KWON_TWOK"
msg:[NSString stringWithFormat:
@"[getMacFormat] Length = %lu / %@",
(unsigned long)returnData.length,
returnData]];
return returnData;
}
// ------------------------------------------------------------
// 🟦 [호출] : getMacFormat 호출 코드
// ------------------------------------------------------------
NSString *result = [self getMacFormat:@"A1B2C3D4E5F6"];
NSLog(@"%@", result);
// ------------------------------------------------------------
// 🟦 [결과 출력 예시]
// ------------------------------------------------------------
A1:B2:C3:D4:E5:F6
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
▶️ [유틸 파일] stringRegexpContains : String 문자열에 특정 정규식 패턴 포함 확인
https://kkh0977.tistory.com/5928
https://blog.naver.com/kkh0977/223414915474?trackingCode=blog_bloghome_searchlist
▶️ [정규식 사용해 특수 문자 및 공백 제거 실시 - NSRegularExpression]
https://kkh0977.tistory.com/1366
https://blog.naver.com/kkh0977/222555692392?trackingCode=blog_bloghome_searchlist
▶️ [regularExpression 정규식 사용해 이메일 형식 (email) 검증 실시]
https://kkh0977.tistory.com/2791
https://blog.naver.com/kkh0977/222898069653?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
728x90
반응형
'Objective-C' 카테고리의 다른 글
Comments
