Android EditText InputFilter和正则表达式实现字符过滤

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()); 这样就完成了。

简简单单小功能,欢迎大神指导。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容