How do I use InputFilter to limit characters in an EditText in Android?

后端 未结 20 1135
慢半拍i
慢半拍i 2020-11-22 04:23

I want to restrict the chars to 0-9, a-z, A-Z and spacebar only. Setting inputtype I can limit to digits but I cannot figure out the ways of Inputfilter looking through the

20条回答
  •  无人及你
    2020-11-22 05:17

    You can specify wanted characters in a regex and use it in InputFilter:

    val regex = Regex("[a-zA-Z\\d ]")
        
    editText.filters = arrayOf(InputFilter { source, _, _, _, _, _ ->
        source.filter { regex.matches(it.toString()) }
    })
    

    Notice, I didn't used \w character class, because it includes underscore _

提交回复
热议问题