안드로이드
[Android] EdtitText 필터 적용, 이모지 및 특수문자 입력 차단
IT꿈나무
2021. 11. 23. 13:28
한글 영어 숫자 만 입력되게 EditText 필터 적용 ( 특수기호 및 이모지입력 차단)
etInput.setFilters(arrayOf(
InputFilter { src, start, end, dst, dstart, dend ->
//val ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐]+$") //영문 숫자 한글
//영문 숫자 한글 천지인 middle dot[ᆞ]
val ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐ㄱ-ㅣ가-힣ᆢᆞ\\u318d\\u119E\\u11A2\\u2022\\u2025a\\u00B7\\uFE55\\s?!]+$")
if (!ps.matcher(src).matches()) {
return@InputFilter ""
} else{
return@InputFilter null
}
}
))
삼성키패드 . 처리
Pattern ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐ㄱ-ㅣ가-힣ᆢᆞ]+$"); 코드 부분에 이와 같이 처리하면 삼성키보드에서 . 을 처리 할 수 있다.
영문 숫자만 입력
Pattern ps = Pattern.compile("^[a-zA-Z0-9]*$");
한글만
Pattern ps = Pattern.compile("^[ㄱ-ㅣ가-힣]*$");
참고자료
[0] 천지인 middle dot[ᆞ] 처리, https://hydok.tistory.com/17
\\u318d\\u119E\\u11A2\\u2022\\u2025a\\u00B7\\uFE55
[1] 삼성키패드,https://human2p.tistory.com/entry/EditText-%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%A0%9C%ED%95%9C
[2] 특수문자 제한, 한글만 입력, https://jkpark.github.io/blog/restrict-input-on-edittext/
[3] EdtiTextInpuFilter kotlin, https://jinsangjin.tistory.com/66
[4] 띄어쓰기 \\s, https://j07051.tistory.com/554
반응형