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
    }
}

 

 

요런식으로 정규식을 바꿔주면서 자신이 원하는 값을 입력받을 수 있도록 할 수 있다.

정규식에 대한 예제는 인터넷에 자료가 많으니 직접 알아보면 좋을 것 같다.

반응형