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 | 31 |
Tags
- NotificationService Extension
- 안드로이드 FCM
- 안드로이드 숏컷
- 안드로이드 에러
- 안드로이드 앨범
- FlutterView MethodChannel
- 앱 꺼졌을 때 푸시 데이터 저장
- 스위프트 UserDefaults
- 스위프트 푸시
- swift autolayout
- 안드로이드 바로가기
- 플러터 뷰 컨트롤러
- 스위프트 테이블 뷰 셀
- 푸시 데이터 저장
- Swift flutterview
- Swift flutterviewcontroller
- 앱 백그라운드 푸시 데이터 저장
- Flutter UIKitView MethodChannel
- 스위프트 앨범
- silent push
- 스위프트 카메라
- flutter 회전
- native flutter view
- 스위프트
- swift 문자
- swift sms
- 스위프트 웹뷰
- 노티피케이션 익스텐션
- Flutter NativeView
- flutter rotate
Archives
- Today
- Total
Things take time
[SWIFT] 특수문자, 한글, 숫자, 이모티콘 정규식! 본문
[개요]
회원가입을 할때, 사용자의 이름을 입력받는다.
그런데 여기서 특수문자를 넣는다거나, 이모티콘, 숫자들을 넣는 것을 방지하기 위함이다.
[소스코드]
func hasCharacters() -> Bool{ do{ let regex = try NSRegularExpression(pattern: "^[a-zA-Z가-힣ㄱ-ㅎㅏ-ㅣ\\s]$", options: .caseInsensitive) if let _ = regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions.reportCompletion, range: NSMakeRange(0, self.count)){ return true } }catch{ print(error.localizedDescription) return false } return false }
당연히 extenstion String{}안에 넣어 두면 된다. 숫자는 포함시키려면 0-9를 저 중간 사이에 넣으면 된다(...A-Z0-9가-힣...)
^는 시작을 알리는것 $는 끝남을 알리는 것, []는 문자열들을 담고 있는 것
그리고 사용자가 이름을 입력하는 곳에서 (UITextField의 딜리게이트 포함)
// 한 글자 입력시 호출 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { let utf8Char = string.cString(using: .utf8) let isBackSpace = strcmp(utf8Char, "\\b") if string.hasCharacters() || isBackSpace == -92{ return true } return false }
이렇게 사용하면, 유저는 영문, 한글만 입력해야 실제 입력이 되고 특수문자나 이모티콘, 숫자를 입력하면 실제 텍스트 필드에는 입력되지 않는다.
그리고 utf8Char는 백 버튼을 감지해서 지울때도 들어가야 하기 때문에 넣었다. 이 부분이 빠지면 뒤로가기 눌러도 지워지지 않는다(!)
'iOS (기능)' 카테고리의 다른 글
[SWIFT] Autolayout, 오토레이아웃에서 Android의 Gone과 같은 뷰 조절을 해보자. (0) | 2019.03.28 |
---|---|
[SWIFT] UITableView의 Custom Cell 사용 시, UI가 중첩 및 뭉쳐지는 현상 (3) | 2019.03.25 |
[SWIFT] Command /usr/sbin/chown failed with exit code 1 (0) | 2019.01.22 |
[SWIFT] Embed ViewController(+ View) programmatically (0) | 2019.01.21 |
[SWIFT] Substring is deprecated (0) | 2019.01.09 |