마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

영문과 숫자만 입력받으려면 어떻게해야하나요?

0 추천
EditText에서 회원가입폼의 아이디를 입력받으려 하는데요

한글이나 공백등 이런것들이 포함되었을경우 검사해서 오류메세지를 보내려고 합니다

영문과 숫자만 가능하도록 하고 싶은거죠

그렇게하려면 문자열 검색을 어떤걸로 해야하나요?

ios에서는 캐릭터셋으로 A~Z, 0~9 까지를 제외한 모든 문자를 검색해서 검색될경우 에러가 나오게 할수가 있는데요

자바에서는 어떻게 하는지 궁금합니다
익명사용자 님이 2015년 7월 15일 질문

3개의 답변

0 추천
정규표현식 사용 하시면 되는거 아닌가요?
익명사용자 님이 2015년 7월 15일 답변
0 추천

저는 setFilters 함수 이용해서

 

private InputFilter alphaNumericFilter = new InputFilter() {
 
        @Override
        public CharSequence filter(CharSequence source, int start, int end,
                Spanned dest, int dstart, int dend) {
            // TODO Auto-generated method stub
            Pattern patter = Pattern.compile("^[a-zA-Z0-9]*$");
            String input = source.subSequence(start, end).toString();
            Matcher matcher = patter.matcher(input);
            if (!matcher.find()) {
                return "";
            }
            return null;
        }
    };
위에 필터 설정해서 아예 문자나 숫자가 아니면 입력이 안되게 한적이 있습니다. 
코딩인헬 (12,150 포인트) 님이 2015년 7월 15일 답변
코딩인헬님이 2015년 7월 15일 수정
0 추천
public InputFilter filterAlphaNum = new InputFilter() {
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend) {
Pattern ps = Pattern.compile("^[a-zA-Z0-9]+$");
if (!ps.matcher(source).matches()) {
return "";
}
return null;
}
};
콜벳 (7,150 포인트) 님이 2015년 7월 15일 답변
...