본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android][kotlin] EditText Filter(필터) 적용, 한글만, 영어만, 특수문자 제한 등 예제

by MinChan-Youn 2022. 7. 16.

안녕하세요~ 챠니입니다! :)

이번에는 EdtiText에서 Filter를 통해서 한글만, 영어만, 한글|영어만, 특수문자 제한 등등 하는 방법에 대해서 알아보도록 하겠습니다.

 

말이 길어지는 것보다는 아래의 예제를 통해 설명하겠습니다

 

 

    EditText Filter 방법

    EditText에 Filter를 하는 방법을 다음과 같습니다.

    /** 문자열필터(EditText Filter) */
    var filterAlphaNumSpace = InputFilter { source, start, end, dest, dstart, dend ->
        /*
            [요약 설명]
            1. 정규식 패턴 ^[a-z] : 영어 소문자 허용
            2. 정규식 패턴 ^[A-Z] : 영어 대문자 허용
            3. 정규식 패턴 ^[ㄱ-ㅣ가-힣] : 한글 허용
            4. 정규식 패턴 ^[0-9] : 숫자 허용
            5. 정규식 패턴 ^[ ] or ^[\\s] : 공백 허용
        */
        val ps = Pattern.compile("^[ㄱ-ㅣ가-힣a-zA-Z0-9\\s]+$")
        if (!ps.matcher(source).matches()) {
          ""
        } else source
    }
    
    
    binding.etSearch.filters = arrayOf(filterAlphaNumSpace)

    코드를 보면 아주 쉽게 최대한 주석처리를 해두었습니다.

    정규식패턴을 통해서 EditText에 적용하고자 하는 Filter(필터)를 만들고

    editText에 filters를 적요하면 되겠습니다.

     

     

    방법은 어렵지 않습니다.

    위의 기능을 사용하기 위해서는 정규식표현에 대한 이해도가 필요하면

    더 나아가 체계적인 Filter를 하기 위해서는 글자수제한 등등 기능이 추가 될 수 있겠습니다.

     

     

     

    EditText Filter 적용

    EditText에 Filter를 적용한 내용은 아래 영상과 같습니다.

     

    허용: 한글,영어,숫자

    제한: 특수문자

     

     

     

     

     

    질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

    응원의 댓글은 저에게 큰 힘이 된답니다! :)

    즐거운 하루되세요!

     

    깃허브 보러 놀러오세요 👇 (맞팔환영)

    https://github.com/younminchan

     

    younminchan - Overview

    안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

    github.com