Notice
Recent Posts
Recent Comments
Link
투케이2K
322. (kotlin/코틀린) [유틸 파일] : getRegExpDetail 정규식 패턴 형식 검증 - 휴대폰 번호, 이메일, 주민번호, ip주소 등 본문
Kotlin
322. (kotlin/코틀린) [유틸 파일] : getRegExpDetail 정규식 패턴 형식 검증 - 휴대폰 번호, 이메일, 주민번호, ip주소 등
투케이2K 2023. 7. 1. 11:11[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getRegExpDetail : 정규식 수행 세부 형식 검증
// -----------------------------------------------------------------------------------------
fun getRegExpDetail(data: String, regType: Int): Boolean {
/**
* // -----------------------------------------
* [getRegExpDetail 메소드 설명]
* // -----------------------------------------
* 1. 정규식 수행 세부 형식 검증
* // -----------------------------------------
* 2. 호출 방법 :
*
* C_Util.getRegExpDetail("010-1234-5678", 1) // [휴대폰 번호]
* C_Util.getRegExpDetail("twok@naver.com", 2) // [이메일]
* C_Util.getRegExpDetail("940101-1234567", 3) // [주민 등록 번호]
* C_Util.getRegExpDetail("192.168.0.123", 4) // [ip 주소]
* C_Util.getRegExpDetail("02-1234-5678", 5) // [일반 전화]
*
* // -----------------------------------------
* 3. 리턴 데이터 : 패턴 만족 = true / 아니면 false
* // -----------------------------------------
*/
// [결과를 반환할 변수 선언 실시]
var returnData = false
var M_LOG = ""
// [정규식 패턴 형식 정의]
val pattern_1 = "^01([0-9])-(\\d{3}|\\d{4})-\\d{4}$" // TODO 정규식 : 휴대폰 번호 : 010-1234-5678 형식
val pattern_2 = "^(.+)@(.+)$" // TODO 정규식 : 이메일 : hello@naver.com 형식
val pattern_3 = "^\\d{6}-[1-4]\\d{6}" // TODO 정규식 : 주민등록 번호 : 940101-1234567 형식
val pattern_4 = "^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})" // TODO 정규식 : ipV4 : 192.168.0.123 형식
val pattern_5 = "^(\\d{2}|\\d{3})-(\\d{3}|\\d{4})-\\d{4}$" // TODO 정규식 : ipV4 : 02-1234-5678 형식
// [인풋 값 기준으로 패턴 삽입]
var patternString = ""
if (regType == 1) {
patternString = pattern_1
M_LOG = "정규식 : 휴대폰 번호 검증"
}
if (regType == 2) {
patternString = pattern_2
M_LOG = "정규식 : 이메일 형식 검증"
}
if (regType == 3) {
patternString = pattern_3
M_LOG = "정규식 : 주민등록 번호 형식 검증"
}
if (regType == 4) {
patternString = pattern_4
M_LOG = "정규식 : ipV4 아이피 주소 형식 검증"
}
if (regType == 5) {
patternString = pattern_5
M_LOG = "정규식 : 일반 전화 번호 형식 검증"
}
// [로직 처리 실시]
try {
if (stringNotNull(data) == true && stringNotNull(patternString) == true) { // [문자열이 널이 아닌 경우 수행]
// [인풋 값이 패턴 형식을 만족하는지 확인]
val pattern = Pattern.compile(patternString)
val matcher = pattern.matcher(data)
// [리턴 변수에 삽입]
returnData = matcher.matches()
}
} catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
///*
// ===============================================================
S_Log._D_("정규식 수행 패턴 만족 확인 실시", arrayOf(
"INPUT :: $data",
"M_LOG :: $M_LOG",
"REGEXP :: $patternString",
"RETURN :: $returnData"
))
// ===============================================================
// */
// [결과 반환 실시]
return returnData
}
[결과 출력]
D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.C_Util$Companion.getRegExpDetail(C_Util.kt:5103)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 정규식 수행 패턴 만족 확인 실시]
I/: ----------------------------------------------------
I/: [LOG :: INPUT :: 010-1234-5678]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: 정규식 : 휴대폰 번호 검증]
I/: ----------------------------------------------------
I/: [LOG :: REGEXP :: ^01([0-9])-(\d{3}|\d{4})-\d{4}$]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
D///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments