Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Protocol
- uiscrollview
- rxswift
- ios
- Clean Code
- MVVM
- swiftUI
- RxCocoa
- 스위프트
- map
- combine
- 리펙터링
- Xcode
- 애니메이션
- UITextView
- Observable
- 리팩토링
- SWIFT
- 클린 코드
- swift documentation
- Human interface guide
- tableView
- ribs
- Refactoring
- 리펙토링
- HIG
- UICollectionView
- uitableview
- clean architecture
- collectionview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Regular Expression(정규 표현식, 이메일, 패스워드, 핸드폰 번호) 본문
iOS 응용 (swift)
[iOS - swift] Regular Expression(정규 표현식, 이메일, 패스워드, 핸드폰 번호)
jake-kim 2021. 7. 3. 23:06Regular Expression(정규 표현식)
- 특정한 규칙을 가진 문자열의 집합을 표현
- 주로 문자열 검색이나 email, phone number, password에서 정규성 검사에 사용
문법
표현 정규식 | 의미 |
^ | 시작 앵커 |
(?=.*[A-Z].*[A-Z]) | 문자열에서 대문자가 2개 있는지 |
(?=.*[!@#$%^]) | 문자열에서 선언한 특수 문자가 존재하는지 |
(?=.*[0-9].*[0-9]) | 문자열에서 숫자가 2개 포함되어 있는지 |
(?=.*[a-z].*[a-z].*[a-z]) | 문자열에서 소문자가 3개 이상 포함되어 있는지 |
.{10} | 문자열의 길이가 10인지 |
& | 끝 앵커 |
이메일 정규식 표현
let regex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
- @앞에는 대문자, 숫자, 소문자, 특수문자(._%+-)가 포함 가능
- \\. 콤마를 표현하기 위해서 \\사용
- @뒤로는 대문자, 소문자, 숫자 그리고 . 기준으로 맨 마지막 문자가 2~64길이
핸드폰 번호 정규식 표현
let regex = "^01[0-1, 7][0-9]{7,8}$"
- ^ 는 시작 앵커, $ 는 끝 앵커
- 핸드폰 번호는 01로 시작
- 01다음에는 0,1,7 가능
- 그다음에 오는 숫자는 0~9 가능하고 7자리에서 8자리만 가능
패스워드 정규식 표현
let regex = "^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+=-]).{8,50}" // 8자리 ~ 50자리 영어+숫자+특수문자
- ^ 첫 앵커, $ 끝 앵커
- (?=.* 로 시작: 조건문
- (?=.*...)(?=.*...)이와 같이 묶인것은 And조건이 아닌 Or조건
- (?=.*[A-Za-z]) 대문자나 소문자 가능
- (?=.*[0-9]) 숫자 가능
* 더욱 구체적인 개념은 해당 포스팅 글 참고
* Regular Expression과 Predicate를 이용하여 이메일, 핸드폰번호, 패스워드 정규성 확인: https://ios-development.tistory.com/592
'iOS 응용 (swift)' 카테고리의 다른 글
Comments