[iOS][Swift] Regular Expression을 이용한 Validation

Jay·2023년 8월 17일
0

iOS

목록 보기
20/47

Swift에서의 정규식 사용

Swift에서 정규식을 사용하려면, NSRegularExpression 클래스를 사용해야 합니다. 이 클래스는 Foundation 프레임워크에 포함되어 있으므로 사용하기 전에 반드시 import Foundation을 선언해야 합니다.

유효성 검사를 위한 도우미 함수

아래는 문자열에 대한 패턴 매칭을 수행하는 도우미 함수입니다:

일반적인 유효성 검사 예제

import Foundation

func matchesPattern(_ string: String, pattern: String) -> Bool {
    do {
        let regex = try NSRegularExpression(pattern: pattern)
        let range = NSRange(location: 0, length: string.utf16.count)
        return regex.firstMatch(in: string, options: [], range: range) != nil
    } catch {
        print("Invalid regex pattern: \(error.localizedDescription)")
        return false
    }
}

이메일 주소 유효성 검사

func isValidEmail(_ email: String) -> Bool {
    let emailPattern = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
    return matchesPattern(email, pattern: emailPattern)
}

알파벳과 숫자로만 구성된 문자열 검사

func isAlphanumeric(_ string: String) -> Bool {
    let pattern = "^[a-zA-Z0-9]+$"
    return matchesPattern(string, pattern: pattern)
}

전화번호 유효성 검사 (예: XXX-XXX-XXXX)

func isValidPhoneNumber(_ number: String) -> Bool {
    let pattern = "^[0-9]{3}-[0-9]{3}-[0-9]{4}$"
    return matchesPattern(number, pattern: pattern)
}

사용 예제:

print(isValidEmail("test@email.com"))  // true
print(isValidEmail("test-email"))      // false

print(isAlphanumeric("test123"))       // true
print(isAlphanumeric("test!@#"))       // false

print(isValidPhoneNumber("123-456-7890"))  // true
print(isValidPhoneNumber("1234567890"))    // false

위의 예제들은 간단한 유효성 검사를 위한 것이므로, 실제 사용 시에는 정규식 패턴을 조금 더 정교하게 만들어야 할 수도 있습니다.

profile
Junior Developer

0개의 댓글