투케이2K

331. (java/자바) [유틸 파일] : getRegExpDetail 정규식 패턴 형식 검증 - 휴대폰 번호, 이메일, 주민번호, ip주소 등 본문

Java

331. (java/자바) [유틸 파일] : getRegExpDetail 정규식 패턴 형식 검증 - 휴대폰 번호, 이메일, 주민번호, ip주소 등

투케이2K 2023. 7. 1. 11:07

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getRegExpDetail : 정규식 수행 세부 형식 검증
    // -----------------------------------------------------------------------------------------
    public static Boolean getRegExpDetail(String data, int regType) {

        /**
         * // -----------------------------------------
         * [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
         * // -----------------------------------------
         * */


        // [결과를 반환할 변수 선언 실시]
        boolean returnData = false;
        String M_LOG = "";


        // [정규식 패턴 형식 정의]
        String pattern_1 = "^01([0-9])-(\\d{3}|\\d{4})-\\d{4}$"; // TODO 정규식 : 휴대폰 번호 : 010-1234-5678 형식
        String pattern_2 = "^(.+)@(.+)$"; // TODO 정규식 : 이메일 : hello@naver.com 형식
        String pattern_3 = "^\\d{6}-[1-4]\\d{6}"; // TODO 정규식 : 주민등록 번호 : 940101-1234567 형식
        String pattern_4 = "^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})"; // TODO 정규식 : ipV4 : 192.168.0.123 형식
        String pattern_5 = "^(\\d{2}|\\d{3})-(\\d{3}|\\d{4})-\\d{4}$"; // TODO 정규식 : ipV4 : 02-1234-5678 형식


        // [인풋 값 기준으로 패턴 삽입]
        String 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 (C_Util.stringNotNull(data) == true && C_Util.stringNotNull(patternString) == true) { // [문자열이 널이 아닌 경우 수행]

                // [인풋 값이 패턴 형식을 만족하는지 확인]
                Pattern pattern = Pattern.compile(patternString);
                Matcher matcher = pattern.matcher(data);

                // [리턴 변수에 삽입]
                returnData = matcher.matches();

            }

        }
        catch (Exception e){
            e.printStackTrace();
        }


        // [로그 출력 실시]
        ///*
        // ===============================================================
        S_Log._D_("정규식 수행 패턴 만족 확인 실시", new String[]{
                "INPUT :: " + String.valueOf(data),
                "M_LOG :: " + String.valueOf(M_LOG),
                "REGEXP :: " + String.valueOf(patternString),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


        // [결과 반환 실시]
        return returnData;
    }
 

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Util.getRegExpDetail(C_Util.java:5466)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 정규식 수행 패턴 만족 확인 실시]
I/: ----------------------------------------------------
I/: [LOG :: INPUT :: 02-1234-5678]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: 정규식 : 일반 전화 번호 형식 검증]
I/: ----------------------------------------------------
I/: [LOG :: REGEXP :: ^(\d{2}|\d{3})-(\d{3}|\d{4})-\d{4}$]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
D///===========//: ================================================

 

반응형
Comments