로그인 기능을 구현할때 빠지지않는 이메일, 패스워드 정규식 검사를 extension 으로 구현했습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
extension String {
    
    // 이메일 정규식
    func validateEmail() -> Bool {
        let emailRegEx = "^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$"
        
        let predicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
        return predicate.evaluate(withself)
    }
    // 패스워드 
    func validatePassword() -> Bool {
        let passwordRegEx = "^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8}$"
        
        let predicate = NSPredicate(format:"SELF MATCHES %@", passwordRegEx)
        return predicate.evaluate(withself)
    }
}



기본적으로 이메일이나 패스워드는 String 문자열로 처리하기때문에 extension 은 String으로 구현했고

샘플로 구현되어있는 정규식패턴은 

이메일은 기본적으로 사용되는 @. 패턴으로 구현되어있고

패스워드는 최소8자이상, 대문자, 소문자, 숫자 조합인지 검증하게되어있습니다


더 많은 extension 들은 개인적으로 GitHub에 올려두고 업데이트 및 관리를 하고있습니다.

https://github.com/oper0960/ExtensionsForSwift



+ Recent posts