다양한 페이지에서 String에 조건을 주고 싶을때 정규화를 사용할 것이다.
이때 정규화는 어떻게 구성되는 지를 설명하겠다.
class Normalization {
// 회원가입, 로그인 등 Normalization의 모든 검증을 하는 type method
static func isValidRegEx(regExKinds: String?, objectString: String?) -> Bool {
guard regExKinds != nil, objectString != nil else { return false }
var regEx: String = ""
switch regExKinds {
case "name": regEx = "^[가-힣]{2,10}$"
case "birth": regEx = "^[0-9]{8}$"
case "phone": regEx = "^010([0-9]{8})$"
case "id": regEx = "^[A-Za-z0-9]{4,14}$"
case "password": regEx = "^[A-Za-z0-9]{8,22}$"
// case "password": regEx = "[A-Za-z0-9!_@$%^&+=]{8,22}"
case "nickName": regEx = "^[가-힣]{5,10}$"
default:
return false
}
let pred = NSPredicate(format:"SELF MATCHES %@", regEx)
return pred.evaluate(with: objectString)
}
}
다양한 페이지에서 사용하기에 간편한 type method로 사용했고, 어떤 text 종류에 따른 normalization string을 구현하면 된다.
한글: [가-힣]
숫자: [0-9]
영어대문자: [A-Z]
영어소문자: [a-z]
영어: [A-Za-z]
{8}: 8개 지정
{2, 10}: 2개이상 10개이하
^ : 시작을 나타냄
$ : 끝을 나타냄
'IOS application > Swift' 카테고리의 다른 글
18. UITextField underline (0) | 2021.05.25 |
---|---|
17. currentFirstResponder (0) | 2021.05.24 |
15. 이용약관 동의 페이지 (0) | 2021.05.21 |
14. Color Literal (0) | 2021.05.19 |
13. When viewDidAppear and viewWillAppear are not called. (0) | 2021.05.18 |