투케이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///===========//: ================================================

반응형
Comments