본문 바로가기

Kotlin_study

[Kotlin] 정규 표현식 사용하여 회원가입 화면 만들기

이번 앱 개발 프로젝트중 회원가입을 구현할 때, 서버측에서 특수문자를 필터링해서 보내주면 좋겠다고 이야기를 했다.

지난 동아리 활동에서 이런 기능은 정규식을 활용한다고 들었던것 같아 이를 활용해 구현해보았다.

 

binding.signupNicknameCheckTv.setOnClickListener {
            val regex = Regex("[^A-Za-z0-9가-힣]")
            val result = regex.replace(binding.signupNicknameEt.text.toString(), "")
            result.filter { !it.isWhitespace() }
            if(result != binding.signupNicknameEt.text.toString()){
                showWarning("공백과 특수문자는 사용이 불가능합니다.")
            }else if(binding.signupNicknameEt.length() < 2 || binding.signupNicknameEt.length() > 9){
                showWarning("닉네임은 2글자 이상 10글자 미만이어야합니다.")
            } else{
                checkExist()
            }
        }

우선 우리 어플은 다음 화면으로 넘어가기 위해서는 중복 확인을 눌러야하기 때문에 이 버튼을 클릭했을 때 동작하도록 했다. regex부분에 들어가 있는 종류의 글자들이 사용 가능한 것이고, 입력 받은 문자열을 다음 줄에서 특수문자가 있는지 확인한다. 그리고 공백을 제거하는데, 만약 특수문자나 공백이 있었다면 앞의 과정에서 기존 문자열과 다른 문자열이 result에 저장되었을 것이다. 그래서 이를 확인하고 만약 달라졌다면 경고 문구를 출력하게 하였다.

 

참고

아이디 등록시 특수문자 체크 :: N'Story (tistory.com)