는이 코드 안에 ...이 정규식생일 형식
^([0][1-9] | [1][0-2]) ([0])[1-9][1-2][\d] | [3][0-1]) ([\d]{2})$
를 사용할 수 있습니까? 내가하고 싶은 일은 다른 캐릭터 입력을 제한하는 동시에 원하는 생일 날짜 형식을 따르는 것입니다. MM/DD/YY
.
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter(){
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (end > start) {
char[] acceptedChars = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9','/'};
for (int index = start; index < end; index++) {
if (!new String(acceptedChars).contains(String.valueOf(source.charAt(index)))) {
return "";
}
}
}
return null;
}
};
txtBirthday.setFilters(filters);
내가 사용자 입력을 restict을 모두 사용하여 시도, 나는 특수 문자를 입력 할 때마다 글고 이미 동의하지 않습니다 (선한)하지만 난 입력하면이이 유효하고해야 07/27/92 말할 수 있습니다 받아 들여질 수 있지만 프로그램은 여전히 유효하지 않다고 말합니다. 여기에 내 코드 어쩌면 내 정규식에 뭔가 문제가있다
String valid_bday = "^([0][0-9]|[1][0-2][\b])([0][1-9][1-2]|[3][0-1])([\b]{2})$";
Matcher validbday = Pattern.compile(valid_bday).matcher(Birthday);
//on my else if
else if(!validbday.matches())
{
Toast.makeText(getApplicationContext(), "Birth date entered is invalid. \n (MM/DD/YY)", Toast.LENGTH_LONG).show();
}
.... MM/DD/YY 형식으로하고 싶습니다. 감사!
날짜 선택기 위젯을 사용하십시오. http://stackoverflow.com/questions/3299392/date-picker-in-android – Calvin
Ahhhhh 님이 질문을 업데이트했습니다. 정상적으로 다른 질문을해야합니다. 그런데 editext가 currect 입력을 제공한다면 왜 여기서 유효성 검사를 사용합니까? –
editText는 입력 할 특수 문자 만 트랩합니다. 트랩 할 정규 표현식을 따르지 않습니다. 13/32/13, 13 일은 inavalid입니다. coz 우리는 12 일을 마치 32 일과 같이 사용할 수 있습니다. 31, 그 이유는 내가 datepicker를 사용하지 않는 경우에도 올바른 날짜를 받아 들일 정규식을 사용합니다. (0) [0] [0-9] | [1] [0-2] [\ b]) ([0] [1-9] [1-2] | [3] [0-1]) ([\ b] {2}) $ "; – dolphinately