안드로이드

[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

 

 

 

반응형