Before 2022/Android

Edittext InputFilter로 한글 및 영어만 입력 시키기

Eljoe 2018. 8. 24. 13:18
public InputFilter textSetFilter(String lang){
        Pattern ps;

        if(lang.equals("kor")){
            ps = Pattern.compile("^[ㄱ-ㅣ가-힣\\s]*$"); //한글 및 공백문자만 허용
        }else{
            ps = Pattern.compile("[a-zA-Z\\s-]*$"); //영어 및 하이픈 문자만 허용
        }

        InputFilter filter = (source, start, end, dest, dstart, dend) -> {
            if (!ps.matcher(source).matches()) {
                return "";
            }
            return null;
        };

        return filter;
    }
해당 메소드는 다음과 같이 적용하면 된다.
mEtKorName.setFilters(new InputFilter[]{textSetFilter("kor")});
mEtEngName.setFilters(new InputFilter[]{textSetFilter("eng")});