로그인 기능을 구현할때 빠지지않는 이메일, 패스워드 정규식 검사를 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(with: self) } // 패스워드 func validatePassword() -> Bool { let passwordRegEx = "^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8}$" let predicate = NSPredicate(format:"SELF MATCHES %@", passwordRegEx) return predicate.evaluate(with: self) } } |
기본적으로 이메일이나 패스워드는 String 문자열로 처리하기때문에 extension 은 String으로 구현했고
샘플로 구현되어있는 정규식패턴은
이메일은 기본적으로 사용되는 @. 패턴으로 구현되어있고
패스워드는 최소8자이상, 대문자, 소문자, 숫자 조합인지 검증하게되어있습니다
더 많은 extension 들은 개인적으로 GitHub에 올려두고 업데이트 및 관리를 하고있습니다.
https://github.com/oper0960/ExtensionsForSwift
'Swift' 카테고리의 다른 글
[Swift] Thread (0) | 2017.11.07 |
---|---|
[Swift] GCD (Grand Central Dispatch) (1) | 2017.11.07 |
[Swift] String Trim extension (문자열 공백 삭제) (0) | 2017.03.20 |
[Swift] 아이폰 해상도에 따른 Font size 조절 (0) | 2017.03.20 |
[Swift] App 버전, 빌드번호, 이름 받아오기 (0) | 2016.12.12 |