/**
* 禁止EditText输入空格、特殊符号
* 设置自定义InputFilter后,xml文件中的maxlength属性失效,需手动添加LengthFilter
*
* @param editText 输入框
* @param length 输入框限制的字符长度
*/
private fun setEditTextInhibitInputSpaChat(editText: EditText, length: Int) {
val filter_space = InputFilter { source, start, end, dest, dstart, dend ->
if (source == " ") {
""
} else {
null
}
}
val filter_speChat = InputFilter { charSequence, i, i1, spanned, i2, i3 ->
val speChat = "[`~!@#_$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()— +|{}【】‘;:”“’。,、?]"
val pattern = Pattern.compile(speChat)
val matcher = pattern.matcher(charSequence.toString())
if (matcher.find()) {
""
} else {
null
}
}
editText.filters = arrayOf(filter_space, filter_speChat, InputFilter.LengthFilter(length))
}
04-19
12-08
912