Anroid EditText禁止输入空格、特殊符号
2020-10-09 本文已影响0人
hao_developer
有时候我们需要限制EditText输入的字符类型,如空格,特殊字符等,这时候我们可以使用系统提供的输入过滤器——InputFilter。具体实现如下:
/**
* 禁止输入空格
* @param etText
*/
fun setEditTextInhibitInputSpeChat(etText:EditText){
val filter = InputFilter { source, start, end, dest, dstart, dend ->
if(source.let { it?.equals(" ") == true })
""
else null
}
etText.filters = arrayOf(filter)
}
/**
* 禁止添加非法字符
* @param etText
*/
fun setEditTextInhibitInputSpeChats(etText:EditText){
val filter = InputFilter { source, start, end, dest, dstart, dend ->
val speChat="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?_-]"
val pattern = Pattern.compile(speChat)
val matcher = pattern.matcher(source.toString())
if(matcher.find())
return@InputFilter "";
else return@InputFilter null;
}
etText.filters = arrayOf(filter)
}