macOS, iOS
[iOS] Regex validation - 이메일 정규표현식
SweetDev
2019. 10. 21. 15:19
https://www.youtube.com/watch?v=YRNFEb3lYFk
영상 덕분에 switch랑 enum에 대해서 한번 더 생각해보게 됐다.
c언어 할 때부터 enum을 안쓰다싶이 했더니, 아예 enum이랑 멀어진것같다.
하지만 enum은 꼭 필요한 존재인걸.... 그리고 swift의 enum은 너어어어무 헷깔린다. enum 종류를 왜 case로 표현할까? switch문도 case이면서 ㅂㄷㅂㄷ 정말 마음에 안드는 예약어다 ㅠ
아무튼 본론은 NSPredicate(format: “SELF MATCHES %@”, “[0-9]{2,2}”).evaluate(with: self)
이런 정규표현식으로 내가 원하는 값이 들어왔는지 확인할 수 있다는 내용이었다.
이메일은 “[A-Z0-9a-z._%+-]+@[A-Z0-9a-z._%+-]+\\.[A-Za-z]{2,64}”
이렇게 쓰면 된다. 몇번만 더 쓰면 외울듯
예상할 수 있겠지만, []안에 있는건 쓸 수 있는 글자들, {}안에 있는건 최소 몇글자~최대 몇글자, \\.은 그냥 .이다.
+뒤에 있는 글자는 기준이 되는 글자이자, 그 앞에는 어떤 기준이 있는지도 명시화해줄 수 있는거고...
딱히 어렵지는 않은 내용이었다.
extension String {
var isValidEmail: Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
let emailPred = NSPredicate(format: "SELF MATCHES %@", emailRegEx)
return emailPred.evaluate(with: self)
}
}