πŸ™‚β€β†”οΈ μ •κ·œν‘œν˜„μ‹ 였λ₯˜(\n + UTF-8) μ•„λ‹ˆ μ „ λΆ„λͺ…νžˆ λ§‰μ•˜μ–΄μš”!

κΉ€μž¬ν˜•Β·2024λ…„ 5μ›” 11일
1
post-custom-banner

μ€„λ°”κΏˆ...! μ•„λ‹ˆ μ „ λΆ„λͺ…νžˆ λ§‰μ•˜λ‹¨ λ§μ΄μ—μš”β€¦γ… 

λŒ“κΈ€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 쀑
λ‹€λ₯Έ 앱듀은 μ–΄λ–€μ‹μœΌλ‘œ ν•˜κ³  μžˆλŠ”μ§€ κ΅¬κ²½ν•˜λ‹€
λ§Žμ€ 앱듀이 μ€„λ°”κΏˆμ„ ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

μ‚¬μš©μžκ°€ 글을 μ“°λŠ” 도쀑 μ˜λ„μΉ˜ μ•Šκ²Œ μ—”ν„° ν‚€λ₯Ό λˆ„λ₯Ό 수 μžˆμœΌλ―€λ‘œ λŒ“κΈ€ μž…λ ₯μ°½μ—μ„œλŠ”
보톡 μ€„λ°”κΏˆμ„ μ œν•œν•˜λŠ” 것이 일반적인 방법이라고 ν•˜λ”λΌκ΅¬μš”!

κ·Έλž˜μ„œ μ•„λž˜ μ½”λ“œλ‘œ μ²˜μŒμ—λŠ” μ‹œμž‘ν–ˆμ–΄μš”

 func commentValid(_ string: String, maxCount: Int) -> Bool {
        
        guard !string.isEmpty else {
            return false
        }
        // \n을 μ œμ™Έν•œ λͺ¨λ“  λ¬Έμžμ΄μ§€λ§Œ 1κΈ€μž 이상 μ΅œλŒ€κΈ€μžμˆ˜ μ΄ν•˜λ‘œ
        let pattern = "^[^\n]{1,\(maxCount)}$"
        
        return matchesPatternBool(string, pattern: pattern)
        
    }

이 μ½”λ“œλŠ” λŒ€λΆ€λΆ„μ˜ 경우 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€β€¦.. 만
ν•œκΈ€μž…λ ₯μ΄λ‚˜ 일본어 λ“± λ¬Έμžκ°€ μ‘°ν•©λ˜λŠ” κ³Όμ •μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

λ„λŒ€μ²΄β€¦ μ™œβ€¦

μ‚¬μš©μžκ°€ 'λˆ„λ‚˜'λΌλŠ” 단어λ₯Ό μž…λ ₯ν•˜λ‹€κ°€ 'λˆ„γ„΄\nㅏ'같이 μž…λ ₯ν•˜λ©΄,
μ€„λ°”κΏˆμ΄ ν¬ν•¨λ˜μ–΄λ„ μ •κ·œ ν‘œν˜„μ‹ 검사λ₯Ό 톡과해 λ²„λ¦¬λŠ” 문제λ₯Ό λ°œκ²¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

즉 β†’ ν•œκΈ€ μž…λ ₯ 쀑 쑰합이 μ™„μ„±λ˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ \n이 μž…λ ₯λ˜μ–΄λ„ \n κ°€ 톡과해 λ²„λ¦¬λŠ”κ±°μ£ .

문제의 ν•΄κ²°

func commentValid(_ string: String, maxCount: Int) -> Bool {
    guard !string.isEmpty else {
        return false
    }
    let pattern = "^[^\n]{1,\(maxCount)}$"
    if string.contains("\n") {
        return false
    } else {
        return matchesPatternBool(string, pattern: pattern)
    }
}

μ •κ·œν‘œν˜„μ‹μœΌλ‘œλ„ κ²€μ‚¬ν•˜μ§€λ§Œ, 직접 \n 이 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ 확인 ν•©λ‹ˆλ‹€.

이 μ ‘κ·Ό λ°©μ‹μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν–ˆμœΌλ‚˜, 이둜 인해 μ •κ·œμ‹μ˜ μœ νš¨μ„±μ— μ˜λ¬Έμ„ κ°€μ§€κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
μ •κ·œμ‹λ§ŒμœΌλ‘œ μΆ©λΆ„ν•œ 검사가 이루어지지 μ•Šμ„ λ•Œκ°€ 있기 λ•Œλ¬Έμ—,
κ²½μš°μ— 따라 좔가적인 ν”„λ‘œκ·Έλž˜λ°μ  검증이 ν•„μš”ν•˜λ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.

λŒμ•„λ³΄κΈ°

이번 문제λ₯Ό κ²ͺμœΌλ©΄μ„œ μ •κ·œ ν‘œν˜„μ‹μ€ λͺ¨λ“  μ‚¬μš© 사둀에 λŒ€μ‘ν• μˆœ μ—†μœΌλ©°,
λ•Œλ‘œλŠ” 데이터λ₯Ό 직접 κ²€μ‚¬ν•˜μ—¬ μž…λ ₯ 검증 κ²°κ³Όλ₯Ό 직접 컨트둀 ν•΄μ•Ό ν• λ•Œκ°€ μžˆκ² κ΅¬λ‚˜
λΌλŠ” 생각이 λ“€μ—ˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έλ°©λ²•μ΄ μžˆλŠ” κ²ƒμ΄μ˜€λ‹€λ©΄ λŒ“κΈ€λ‘œ μ•Œλ €μ£Όμ‹œλ©΄ λ°”λ‘œ μˆ˜μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€..!
κ°μ‚¬ν•©λ‹ˆλ‹Ή

profile
IOS 개발자 μƒˆμ‹Ήμ΄
post-custom-banner

0개의 λŒ“κΈ€