限制editText可输入内容为中英文

本文介绍了如何在Android中使用Kotlin和Java通过正则表达式限制editText只允许输入中英文,从而定制自己的输入过滤规则。
摘要由CSDN通过智能技术生成

kotlin:

    fun setEditTextFilter(editText: EditText){
        val filterOne = InputFilter { source, start, end, dest, dstart, dend -> 
            if (source==" ") {
                ""
            } else{
                null
            }
        }//不能输入空格
        val filterTwo = InputFilter { source, start, end, dest, dstart, dend -> 
            val pattern = Pattern.compile("[a-zA-Z|\u4e00-\u9fa5]+")
            val matcher = pattern.matcher(source.toString())
            if (!matcher.matches()){
                ""
            }else{
                null
            }
        }//只能输入中英文
        editText.filters = arrayOf(filterOne,filterTwo)
    }

java:

    public static void setEditTextFilter(EditText editText){
        InputFilter filterOne = new InputFilter(){
            @Override
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                if (source.equals(" ")){
                    return "";
                }else {
                    return null;
                }
            }
        };//不能输入空格
        InputFilter filterTwo = new InputFilter() {
            @Override
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                Pattern pattern  = Pattern.compile("[a-zA-Z|\u4e00-\u9fa5]+");
                Matcher matcher = pattern.matcher(source);
                if (!matcher.matches()) {
                    return "";
                }else {
                    return null;
                }
            }
        };//只能输入中英文
        editText.setFilters(new InputFilter[]{filterOne,filterTwo});
    }

可根据自己的需要通过正则表达式去定制自己的filter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值