일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- LeetCode 1
- 델레게이트
- Remote Url
- imageView shadow
- 코코아팟
- priority
- viewAppear
- DispatchQueue
- CornerRadius
- Swift Package Manager
- ReactorKit
- email regex
- UINavigationController
- 비동기
- Cocoapods
- Swift
- hugging
- 뷰 커스텀
- 라이브러리
- autoLayout
- 리액터킷
- view modifier
- ios
- compression resistance
- onAppear
- 코코아팟 만들기
- Two Sum
- 커스텀 뷰
- Delegate Pattern
- Custom View
- Today
- Total
Tong's Blog
[Swift] 이메일(e-mail) 유효성 체크하는 정규식 만들기 본문
안녕하세요.
마지막 포스트로부터 1년만에 다시 포스트를 적게 되었습니다.
그동안 회사일에도 집중해보려 하고 그 밖에도 여러 도전을 하느라 블로그에 소홀했습니다...
그럼에도 꾸준히 블로그에 방문해 제 글에서 정보를 얻어가시는 분들을 보고 다시 포스트에 신경써보려고 합니다.
오랜만에 글을 쓰는 만큼 당분간은 가벼운 내용을 주로 다룰 것 같습니다.
그래도 해당 글이 여러분들에게 도움이 되면 좋겠습니다.
많은 앱 서비스들은 여러 목적을 가지고 이메일, 전화번호 등 유저의 개인정보를 수집합니다.
최근에는 네이버, 카카오 로그인을 사용하는 서비스들이 많아 해당 로그인에서 이메일과 전화번호를 수집하곤 하는데요.
그럼에도 아직 해당 third party 로그인을 사용하지 않는 서비스도 있고 이런 경우 유저에게 직접 이메일을 입력받아야 합니다.
만약 인증을 위해 이메일을 사용한다고 가정해보겠습니다.
이메일 유효성을 미리 체크해야 불필요한 서버와의 통신과 메일 송신을 줄일 수 있겠죠?
그렇기에 서버에서도 체크가 필요하지만 앱에서도 유효한 이메일 형식인지 체크할 필요가 있습니다.
우리가 알고 싶은건 입력한 이메일 즉 `UITextField`, `UITextView` 에서 받아온 Text, String 이 이메일 형식인지 체크(Bool)를 하고 싶은 건데요.
우선 빠르게 정보를 얻고 싶은 분들을 위해 코드를 먼저 보여드리겠습니다.
extension String{
var isValidEmail: Bool{
let regExp = "^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$" //"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
return NSPredicate(format: "SELF MATCHES %@", regExp).evaluate(with: self)
}
}
//or
func isValid(email: string) -> Bool {
let regExp = "^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$"
return NSPredicate(format: "SELF MATCHES %@", regExp).evaluate(with: self)
}
String 에서 바로 체크를 해주기 위해 extension 을 사용합니다.
그러면 요렇게 사용할 수 있습니다.
import UIKit
final class ViewController: UIViewController {
let emailTextField = UITextField()
...
@objc func onEditingChanged() {
guard let email = emailTextField.text, email.count != 0 else {
// 미입력
return
}
// extension 사용
if email.isValidEmail {
print(" 유효한 이메일 ")
} else {
print(" 유효하지 않은 이메일 ")
}
// 함수 사용
if isValid(email: email) {
print(" 유효한 이메일 ")
} else {
print(" 유효하지 않은 이메일 ")
}
}
}
TextField 에서 받아온 텍스트의 옵셔널 바인딩해주고 해당 텍스트를 extension 에서 선언한 프로퍼티(메소드)를 사용해 유효성 여부를 체크할 수 있습니다.
유효성 체크가 true 인 경우에만 해당 이메일을 사용 즉 api 를 호출하거나 메일서비스에 활용하면 됩니다.
오늘은 간단하게 이메일 형식을 체크하는 Swift 용 정규식 만들기를 살펴보았습니다.
오랜만에 작성하는 포스트라 간단하게 작성해보았는데 도움이 되셨으면 좋겠습니다.
감사합니다.
'iOS > Swift' 카테고리의 다른 글
[Swift] UITextView 에 hyperlink 색상 적용하기 (1) (0) | 2024.03.27 |
---|---|
[SwiftUI] task 와 onAppear 차이 (0) | 2024.03.12 |
[iOS] UINavigationController 에 대해 (0) | 2021.08.31 |
[Swift] ReactorKit Framework (0) | 2021.05.24 |
[Swift] Delegate란? (0) | 2021.02.16 |