Android EditText输入ascii可见字符

1. 使用xml限制
2. 代码中使用InputFilter方式
   ascii可见字符范围是空格到~,即( -~)。
   使用InputFilter重写filter方法,使用正则表达式"[^ -~]",表示除空格到“~”的字符集。
   然后使用Matcher.find匹配,匹配到了就返回空字符串,表示忽略此次输入;没匹配到返回null,表示当前输入满足条件。
   这里在说下 public CharSequence filter()方法的返回值
   return "",表示忽略此次输入。
   return null,表示当前输入满足条件。
   
   完整的方法如下:
   private static InputFilter pwdFilter = new InputFilter() {
        Pattern pwdPattern = Pattern.compile(
                "[^ -~]",
                Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
                                   int dstart,
                                   int dend) {
            Matcher pwdMatcher = pwdPattern.matcher(source);
            if (pwdMatcher.find()) {
                return "";
            }
            return null;
        }
    };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值