Android Koltin : 비밀번호, 이메일 등 정규식
2022. 9. 12. 12:35ㆍ[Android APP] feat. Kotlin/Kotlin 공부
개요
회원가입같은 페이지에서 비밀번호나 이메일같이 형태가 정해져 있는 값에 대해 사용자에게 올바르게 입력받도록 할 때 정규식을 사용한다.
(EX) 비밀번호 : 영문 대문자, 숫자, 특수문자 포함 최소 8글자
본문
1. 비밀번호 정규식 예시
//비밀번호 정규식
fun checkPW():Boolean{
//영문 대문자, 소문자, 숫자, 특수문자 1개 이상 포함 & 최소 8글자
val PwValidation = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@\$%^&*-]).{8,}\$"
val user_password = binding.userPw.text.toString().trim() //공백제거
val p = Pattern.matches(PwValidation, user_password)
if (p) {
binding.userPw.setTextColor(R.color.black.toInt())
binding.userPwCheck.isEnabled = true
return true
} else {
binding.userPw.setTextColor(-65536)
binding.userPwCheck.isEnabled = false
return false
}
}
위 코드는 사용자가 입력한 비밀번호가 정규식 조건과 일치하지 않으면 빨간색을 띄어주고 일치하면 원래 색으로 보여준다.
또한 isEnabled를 통해 다음 입력할 수 있는 칸을 활성화 시켜준다.
2. 이메일 예시
//이메일 정규식
fun checkEmail():Boolean{
//이메일 형태 = xxxxx@xxxxx.com
val emailValidation = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"
val email = binding.userEmail.text.toString().trim() //공백제거
val p = Pattern.matches(emailValidation, email)
if (p) {
//이메일 형태가 정상일 경우
binding.userEmail.setTextColor(R.color.black.toInt())
return true
} else {
binding.userEmail.setTextColor(-65536)
return false
}
}
3. 아이디 예시
//아이디 정규식
fun checkid():Boolean{
//영문 소문자와 숫자만 입력
val idValidation = "^[0-9a-z]+\$"
val userid = binding.userId.text.toString().trim() //공백제거
val p = Pattern.matches(idValidation, userid)
if (p) {
//이메일 형태가 정상일 경우
binding.userId.setTextColor(R.color.black.toInt())
return true
} else {
binding.userId.setTextColor(-65536)
return false
}
}
요런식으로 정규식을 바꿔주면서 자신이 원하는 값을 입력받을 수 있도록 할 수 있다.
정규식에 대한 예제는 인터넷에 자료가 많으니 직접 알아보면 좋을 것 같다.
반응형
'[Android APP] feat. Kotlin > Kotlin 공부' 카테고리의 다른 글
Android Kotlin : MVVM, MVP, MVC 디자인 패턴이란 무엇일까? (0) | 2022.09.20 |
---|---|
Android Kotlin : Coroutine과 Thread (0) | 2022.09.15 |
Android Kotlin : 사용자 저장소 권한(Permission) 체크 (0) | 2022.09.12 |
Android Kotlin : 전화번호 및 주민등록번호 하이픈(-) 처리 (0) | 2022.09.08 |
Android Kotlin : Retrofit2 동적 Url주소 만들기 (0) | 2022.09.08 |