투케이2K

208. (swift5/xcode) [유틸 파일] stringUpperEnglishContains : String 문자열에 [A-Z] 영어 대문자 포함 확인 본문

Swift

208. (swift5/xcode) [유틸 파일] stringUpperEnglishContains : String 문자열에 [A-Z] 영어 대문자 포함 확인

투케이2K 2023. 12. 29. 19:14
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

    // -----------------------------------------------------------------------------------------
    // MARK: - [String 문자열에 [A-Z] 영어 대문자 포함 확인]
    // -----------------------------------------------------------------------------------------
    func stringUpperEnglishContains(data: String) -> Bool {
        
        /*
        // -----------------------------------------
        [stringUpperEnglishContains 메소드 설명]
        // -----------------------------------------
        1. String 문자열에 [A-Z] 영어 대문자 포함 확인
        // -----------------------------------------
        2. 호출 방법 :
         
         C_Util().stringUpperEnglishContains(data: "안녕12투케이")
         C_Util().stringUpperEnglishContains(data: "hello12Twok")
        // -----------------------------------------
        3. 리턴 반환 :

        true / false
        // -----------------------------------------
        */

        
        // [리턴 변수 선언]
        var returnData = false
        var M_LOG = ""


        // [로직 처리 실시]
        if C_Util().stringNotNull(str: data) == true {
            
            // [공백 제거]
            var nullRemoveString = data.trim()
            nullRemoveString = nullRemoveString.replaceAll(_string: " ", _replace: "")

            let strArr = Array(nullRemoveString) // [문자열 한글자씩 확인을 위해 배열에 담는다]

            let pattern = "^[A-Z]$" // [정규식 : 한글, 영어, 숫자, 공백만 허용 (특수문자 제거)]

            // [특수 문자 제거 수행]
            var specialRemoveString = ""
            if let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) {
                var index = 0
                while index < strArr.count { // [string 문자 하나 마다 개별 정규식 체크]
                    let checkString = regex.matches(in: String(strArr[index]), options: [], range: NSRange(location: 0, length: 1))
                    if checkString.count == 0 {
                        index += 1 // [정규식 패턴 외의 문자가 포함된 경우]
                    }
                    else { // 정규식 포함 패턴의 문자
                        specialRemoveString += String(strArr[index]) // [리턴 문자열에 추가]
                        index += 1
                    }
                }
            }
            
            if specialRemoveString != "" && specialRemoveString.count > 0 { // [특수 문자 포함 된 경우]
                M_LOG = "[Check] : String Upper English Contains"
                returnData = true
            }
            else {
                M_LOG = "[Check] : String Upper English Not Contains"
            }

        }
        else {
            M_LOG = "[Error] : Input Data Is Null"
        }

        
        // [로그 출력 실시]
        //*
        S_Log._D_(description: "String 문자열에 [A-Z] 영어 대문자 포함 확인", data: [
            "INPUT :: \(data)",
            "M_LOG :: \(M_LOG)",
            "RETURN :: \(returnData)"
        ])
        // */
        
        
        // [리턴 데이터 반환 실시]
        return returnData
    }

 

반응형
Comments