EditText文本输入控件,在App开发中可能会遇到各种各样的要求, 关于inputType和digits这两个不再介绍,介绍一下复杂的输入,例如输入手机号,只能是第一位为1,后面是0-9的数据,总长度11位,再比如输入的账号只能是字母或数字,长度最多20位,这就用到了InputFilter这个类和正则表达式。
关于正规不是特别清楚的建议学习一下,非常有用。下面来说一下手机号输入中正则为“^1[0-9]{0,10}$”,账号输入中正则为“^[a-zA-Z0-9]{0,20}$”。
正则表达式工具类如下:
限制输入的InputFilter类如下:
每输入一字符都要判断一下,如果正常返回输入的数据,如果不合法,返回空串。
这样合法的数据就能输入进去,不合法的数据就被过滤掉了,同时最重要的一点就是把过滤器设置给editText, FilterUtils.setFilter(editText, new EditPhoneFilter()); 这样就完成了。
简简单单小功能,欢迎大神指导。
网友评论