목록inputfilter (2)
라떼는말이야
프로젝트에서 회원가입 화면을 만들면서 아이디, 비밀번호 등의 입력을 제한해야 하는 작업이 필요했다. 대표적으로 비밀번호인데, 비밀번호 규칙은 회사마다 다르지만 각자의 기준을 가지고 있다. 네이버의 비밀번호 규칙 구글의 비밀번호 규칙 KISA(한국 인터넷 진흥원)의 비밀번호 권고 사항 사진에 링크 걸어놨으니 클릭하면 더 자세한 내용 확인할 수 있음 구상 우선 내가 적용할 비밀번호의 규칙을 정해야 한다. 나는 숫자, 영어 알파벳(대/소문자 상관없이), 특수문자 하나 이상씩을 포함하는 규칙을 세웠다. 특수문자는 ! @ # $ % ^ + - = 로 제한했다. 비밀번호 길이는 8자 이상, 24자 이하로 정했다. > UI 적으로는 사용자가 입력을 시작했을 때 입력할 수 없는 문자는 입력 창에 입력되지 않도록 하면서..
문제 설명 위 코드는 아이디, 비밀번호 입력 창에 필터를 적용해 입력받고자 하는 문자만 받는 기능을 한다. 코드 상으로 보면 아이디와 패스워드가 완전히 동일한 로직을 가지고 있다. 그러나 실행 결과를 보면 아이디의 경우 허용되지 않은 문자 입력 시 전체가 지워져버리고, 패스워드의 경우 허용되지 않은 문자 입력 시 입력을 무시하는 동작을 한다. 같은 로직에 다른 현상이 나타나는 것. 원인 파악 로그를 찍어보면 아이디의 source에는 아이디 입력 창에 입력한 전체 문자가 들어있었고, 패스워드의 source에는 패스워드 입력 창에 마지막으로 입력된 문자가 들어있었다. 왜 그럴까? 아이디를 입력하는 과정에서는 키보드 위에 입력한 문자들이 보이는 것을 알 수 있고, 패스워드는 그렇지 않았다. xml에서 아이디의..